たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【AIに興味がある人向け】AIを作るのにpythonがオススメされる理由をわかりやすく解説します

AIを学ぶ PR

こんにちは、TAKです。
今回から非エンジニアの方向けに「AI」や「python」に関する記事を書いていきます。
「AI」とか「python」と聞くと、「理系出身やプログラマー出身でないと理解出来ないのでは?」と思われる方も多いかと思いますが、実際はそんなことありません。

僕自身、経済学部出身でコンサルタントとして働いていますが、AIエンジニアを目指す人向けの「JDLA資格(E資格)」に合格出来るレベルまで達することが出来ました。
JDLA主催のAI資格に興味がある方は、下記ご参照ください(上が「一般」向け、下が「エンジニア」向けです)。

【AI資格】G検定とは何か?試験概要やメリットを解説します

【AI資格】E資格とは何か?試験概要やメリットを解説します

そのような経験も踏まえて、今回はAIを作るためにオススメされているプログラミング言語として「python」を使う必要性や、これからpythonを勉強する方が優先して学ぶべき論点について紹介していきます。

【こんな人に読んで欲しい記事です】
1. 「AI」や「python」に興味があるが、関係性が今一つわかっていない方
2. 非エンジニアだけど「AIエンジニア」や「python」に興味がある方

pythonは「AIとの相性」がバッチリ

「python」とは何かを知る

それでは「AI」を作るのになぜ「python」がオススメかを見ていきましょう。
結論から言えば、「pythonのライブラリを使えば、ビッグデータ処理や様々なアルゴリズムを駆使して、最適なAIモデルを構築出来る」からです。

これが今回の記事の「コア」となるのですが、もう少し深堀りして考えてみます。
まず、そもそも「python」とは何かを簡単に知っておくことが大切です。
今回の記事の趣旨から外れないようにポイントだけ紹介すると、下記がpythonの主な特徴です。

・オランダ人のグイド・ヴァン・ロッサム氏によって、1989年12月頃に開発された言語
・シンプルなコードで記述出来るプログラミング言語のため、初心者でも学びやすい
・2020年現在、Google検索結果からも最も人気のあるプログラミング言語として評価されている
(※PYPL PopularitY of Programming Language参照)
・機械学習や深層学習、Webアプリケーションまで幅広く実装出来るプログラミング言語
特に、複雑な計算を必要とする機械学習や深層学習の分野に向いている
要は、「pythonは意外と昔からある言語だけど、使いやすいし守備範囲も広いから人気がある言語なんだな」と理解してもらえればOKです。そして、中でも「複雑な計算処理」が得意という点がポイントです。
「AI」とは何かを知る

では次に「AI」とは何でしょうか?
これも語り始めると長くなるので、本記事の趣旨から外れない程度にポイントをまとめたのが下記です。

・AIは「人間の脳」をまねてモデル化された技術
・「人間の脳」を実現するために、複雑かつ深いネットワークを「ディープラーニング(深層学習)」という技術を用いてモデル化している
・モデルには非常に多くの「パラメータ」が存在しており、一番良い「パラメータ」を見つけるためには人間には不可能なレベルの演算処理をえぐい程繰り返す必要がある
ざっくりAIの特徴をお伝えすると、このようなイメージになります。
「パラメータ」という言葉は幅広く使われているので解釈しにくいかもしれませんが、「能力値」みたいなイメージを持ってもらえればOKです。育成系ゲームにもありますが、最初は低い主人公の能力値を一定期間かけて育てて上げていくのと同じ感覚です。
「python」と「AI」の相性は「最高」

ここまでの話をまとめます。
目的は「良いAI」を作ることです。
AIプロダクトが実装されている身近な例「スマートスピーカー」をイメージしてみましょう。
スマートスピーカーは、人間の話す言葉を音声認識して、音楽を流したり情報検索をしてくれる製品です。

良いスマートスピーカーというのは、「人間の声」を正しく認識して、「人間が望む処理」を実現してくれるような状態を指します。そのためには、AIのパラメータを高めた上で、スマートスピーカーに搭載させる必要があるのです。

つまり、良いAIを作るためには、先ほどお話した「AIのパラメータ」を最適化する必要があります。
そのためには、たくさんのデータを使って複雑な計算を試行錯誤繰り返す必要があるのです。
そして、これらを実現するために最も適しているプログラミング言語が「python」なのです。

 

1. pythonはAIを作るために必要な「大量&複雑な演算処理」を実現出来る
2. AIには大量のパラメータが存在しており、「パラメータの最適化」が最も大事なポイント
3. pythonを使えば、AIに必要なパラメータ最適化のための計算をすることが出来る

pythonで優先的に学ぶべき「4つ」の論点

では実際にAIを作ることを目的とした場合、pythonで何を学べば良いかをお伝えしていきます。
最初にお伝えしておくと、AIプロダクト化までにはたくさん勉強する論点があるので容易ではないです。

また、実際にAIに必要なコードを実装する場合、「深層学習ライブラリ」を用いたりすることが多いのですが、ここでは「まずpythonの基本を勉強したい。かつAIに結びつく内容を勉強していきたい」といった観点から、必要な論点を4つにまとめてお話ししていきます。

【論点1】pythonの基礎文法

まずは当然ではありますが、pythonの基本的な文法は学びましょう。
書店に行けば、大量の入門書があるので自分が読みやすいなと思う本を1冊購入してみるといいですよ。

Twitterで「#py2code」と検索してもらえれば、僕が以前基本的な論点をコーディングしてupした短い動画を見ることも出来ます。今後は、非エンジニア向けの方に優しいにコンテンツを作っていこうと思っていますので、その際は改めてアナウンスさせて頂きます。

一応の目安としては、最低限下記は知っておいた方がいいかと思います。
どれも大事ですが、特に「クラス」に対する理解はかなり重要です。

・変数、文字列操作、データ型の違い、四則演算
・For構文やWhile構文
・リスト型、辞書型、タプルに対する操作
・関数の使い方
・リスト内包表記
・クラス設計
【論点2】Numpy

続いては「Numpy」です。
これは「大規模データに対するベクトル演算や行列演算」を高速で扱えるライブラリです。
詳細は割愛しますが、このライブラリを使えば、AIの内部で用いられているアルゴリズムや複雑な計算をゼロから実装することも可能です。

論点3や論点4に比べて、このNumpyに対する理解は非常に重要だと個人的には思っています。

【論点3】Pandas

pythonのオンライン講座などを受講すると、Numpyとあわせて勉強するのがこの「pandas」です。
これは、テーブルデータ(表)のようなデータ形式を自由に扱うことが出来るので、実務的には結構使いやすく重要な内容です。

機械学習やKaggleといったデータ分析コンペのデータを扱う場合には重宝しますが、AIを作るという観点からは(知っているに越したことはないですが)重要性は相対的に落ちる気がしています。

【論点4】Matplotlib

最後に紹介するのが、データをグラフとして可視化する「Matplotlib」です。
これはデータ分析全体に共通することですが、データをそのまま眺めていてもよくわからないですよね。
AIモデルを作るうえでは、今のモデルの「パラメータ」が「イケてるのかイケてないのか」を判断するような場合に、グラフとして可視化することが多いです。

以上の4つの論点が、「python初心者」にオススメの論点となります。
AIを学びたい人やデータサイエンスに興味がある人、そしてこれからpythonやってみようかなという人は是非参考にしてみてください。

まとめ

いかがだったでしょうか?
今回は「AI」と「python」の関連性に焦点を当てた内容を紹介してきました。「AIエンジニア」や「データサイエンティスト」という言葉に惹かれ、「python」の勉強を始める人は非常に多くなっていると聞きます。両者の役割は厳密には異なりますが、いずれにしても「社会が抱える課題を解決出来る力」を手に入れようとする人が増えるのはとてもいい傾向だと僕は思います。
ただ、全体の繋がりがわからなくなったり、数学や機械学習などの専門分野にぶちあたり、道半ばで諦めてしまう人も多いような気がしています。もともと理系寄りの内容なので難しい点はもちろんありますが、学習の工夫一つで解決出来ることも多いはずです。
今後も、非エンジニアの方向けにわかりやすさとシンプルさを心掛けた内容をお届けしていきたいと思います。では今回はこのへんで。