AI開発にはPythonが近道

AI開発にはPythonの習得が近道!現役SEがPythonを勉強してみた

みなさんこんにちは。文系女子SEのほりごたつ(@horigotatsuSE)です。

他人アイコン
AI開発に興味あるけど何を始めたらいいんだろう?

と悩んでいませんか?

ほりごたつアイコン
ほりごたつ
AIを動かしたいならプログラミング言語を勉強する必要があるよ!

最近「機械学習」という言葉があふれるようになりました。

機械学習とはその名の通り、AIのような機械に勉強させることです。

これをやることで、AIが動くようになるんですね。

ほりごたつアイコン
ほりごたつ
とはいえ何から始めたらいいかは悩みどころ・・・

という方もいるでしょう。

機械学習でよくつかわれる言語として人気なのがPythonという言語。

今回は現役SEの私が実際に勉強してみた感触をお伝えしていきます。

この記事の内容

  • Pythonとは
  • Pythonを現役SEが勉強してみた感触

 

この記事の信頼性

ほりごたつのキャリア

私自身は文系未経験からSEになりました。

現在はCOBOLという言語を用いた開発をしており、現場では開発責任者にもなっています。

ですが、COBOL以外の言語は正直初心者同然。

今回は初心者目線でPythonの感触をお伝えできればと思います。

AI開発といえばPythonの理由

AI

まずは、AI開発といえばPythonと言われる理由について

Pythonの言語の特徴をお伝えしていきます。

AI開発で人気なPythonの特徴

ではまずPythonの特徴から説明していきますね。

Pythonの特徴は以下の通りです。

 Pythonの特徴
1.簡単にプログラムが書けて動かせる
2.誰がプログラムを書いても同じような出来栄えになる
3.結果、「他人が見ても理解しやすい」プログラムができあがる
このように、敷居が低くて
勉強しやすいプログラミング言語でることが
Pythonの特徴と言えます。
ほりごたつアイコン
ほりごたつ
そして一番の特徴はAI分野で人気だということ。

Pythonは最近になって急に人気になってきた印象があります。

▼SEの登竜門、基本情報技術者試験でもCOBOLの代わりにPythonが用いられるように
プレス発表 基本情報技術者試験における出題を見直し

最近になって急に人気になってきた理由、それは

AI開発で人気の言語だということ。

AI需要が高まってきた今だからこそ、Python人気が高まってきたんですね。

AI開発でPythonが人気の理由

ではなぜAI開発でPythonが人気なのでしょうか。

その理由はPythonの以下の強みにあります。

 Pythonの強み
1.高度な数値計算が可能
2.高度な科学計算が可能
このように、高度な数値計算と科学計算が簡単に使えることが
AI開発で人気の理由です。

AI開発言語Pythonを現役SEが勉強してみた

バグ

 

AI開発言語Pythonの基本

まずはプログラミングといえば「hello,world」と言う通り

表示の構文からゆっくり覚えていきたいと思います。

表示については「print」で実行できます。

ほりごたつアイコン
ほりごたつ
雰囲気はC言語とかに似ているような。
 ポイント~表示~
・ ”(シングルクォーテーション)で囲めば文字列として認識される。
・ 囲まなければ数値として認識される。
・ 文字列と数値を連結したい場合は数値をstr[]で文字タイプに置き換えれば連結可能。
・ print()のカッコ内にfを入れると変数表示のサイン

C言語だとprintf がお決まりですが、pythonだとprint (f~ になるのがポイントですね。

さて、続いては定数・変数・計算について。

基礎の中でもややプログラミング寄りになってきました。

実はpythonには定数という概念がなく、

変数に数字を入れることで定数として扱えるというだけのようです。

そのため、定数はしっかり大文字で定義し、分かりやすくすることがマナーですね。

ほりごたつアイコン
ほりごたつ
そして計算もほとんどエクセルと同じでわかりやすいね!

そう、上記の例では、tasizanという変数に足し算の計算を代入しています。

これによって、kazuとkazu1にどんな数字が入ってきても計算可能ということです。

 ポイント~定数と変数~
・ 他の言語と同じく、変数には計算でも定数でも代入可能。
・ 定数がないため、変数に固定の数字を入れてしまうことで定数として扱う
・ 計算は基本的にExcelと同じ

AI開発言語Pythonの応用~OpenCV~

さて、一気に応用編へ。OpenCVというものについてです。

ほりごたつアイコン
ほりごたつ
java使っている人にはなじみがあるかも!

javaでいうところのimportでパッケージからクラスを使えるみたいな印象ですね。

簡単に言うとだれでも使える技集で、これをプログラム内に切ることで簡単に技を使えるイメージです。

 OpenCVとは
Open Source Computer Vision Library の略インテルが開発した画像処理、画像解析、機械学習の機能をまとめたプログラムの集まり。
以下のような機能を持つ。・ 画像ファイルを読み込んで表示
・ 画像をファイルへ保存
・ 直線や曲線の描画
・ 画像へ文字を描画
・ 画像にフィルタ処理して加工
・ 画像の特徴を抽出

たとえば、

このようにcv2.はじまりのものを中に切ることで、

今回でいえばリサイズとグレースケール(色の境界をなくす)ことを簡単に組み込めるんですね。

上記のプログラムの中では以下2つのオープンソースを使って、横幅が800px以上なら800pxにリサイズした上でグレースケール化しています。

cv2.cvtColor(画像、変換させる方法)

cv2.resize(画像、拡大・縮小したときの大きさ)

ほりごたつアイコン
ほりごたつ
shapeで画像の(縦)と(横)を取ってこれるのもポイントかな!
[]は他の言語と同じくリストを扱う時のもの。

このあたりが勉強不足なのですが、

Pythonで画像を扱う時には0番目が(縦)と1番目が(横)みたいになっているのかと。

 

さて、上記プログラムでグレースケール化した理由ですが、

顔検出がこのような仕組みになっているため、

色の境界をなくして輪郭をくっきりさせる必要があるからです。

顔検出の仕組み

グレースケール化した画像を、

さらに評価器にあてこむプログラムをつくることで、

画像の特徴を抽出したりもできるわけですね。

Pythonはそこまで難しくないかも!

最後のグレースケール化のプログラムを見てもらえばわかる通り、

かなり複雑な内容なのに、実際に組んでいるのは変数に代入する処理くらいなんですよね。

OpenCVがかなり有能でこれをどれだけ使いこなせるかがカギだな、と勉強して感じました。

 

今回、私が使った教材はコチラ!

未経験文系の人でも結構分かりやすいので

AIプログラミングが気になっている人はぜひ勉強してみてください!

SEになるための勉強法が気になる人は以下の記事もオススメ!

基本情報技術者試験午後問題の対策はアルゴリズムが要!試験合格までにやったこと

SE(システムエンジニア)は大学時代何してた?【文系女子SE】

文系からSE(システムエンジニア)になるには?文系SEが思う就活のポイント

文系からSEになった人はどうやって勉強したの?

文系が就職しやすいのはIT業界?現役SEが理由を分析

SE(システムエンジニア)の試験は意外にも小論文?試験対策について現役SEが解説

Udemy(ユーデミー)とは?自宅でプログラミングからアプリ開発まで実践的に学べる!

文系からプログラミング独学するには!現役文系SEが教える3つのコツ

文系からSE(システムエンジニア)になるには!就活当時の書類内容大暴露

AI開発にはPythonが近道
最新情報をチェックしよう!