AIプログラミングの入門手順をPythonエンジニアが解説
こんにちは!GeekSalonライターのたかぱんです。
この記事をお読みの方は「AI開発に興味があるがまだ理解が漠然としている」「AIプログラミングを始めてみたいけど何から着手すればよいかわからない」などの悩みをお持ちではありませんか?
そこでこの記事では、「そもそもAIとはなにか?」「どのようにして学習して行けばいいのか?」「おすすめの言語は?」などについて解説していきます。
目次
AI開発が身近になった
身近なAIというと何を思い浮かべますか?
お掃除ロボットや自動運転、それからSiriやAlexaなどでしょうか?
意外と身近なものになってきていますね。
さらには、売上予想のAIやチャットボットなど様々な場面でAIのモデルが使われるようになってきました。
その背景として、MicrosoftやGoogleが自社のAIプログラムコードを一般公開しはじめたからなんです。
一般公開をすることでより多くの人に使ってもらい、新たな使い方を生み出してもらったり、データを収集できるため、高精度のAIを誕生させることができます。
さらに一般公開するにあたって、プログラムコードの部分書き換えが簡単に行えるようにしてくれています。
そのためいままでプログラミングしたことがない人でも、少しコードを書き換えるだけで簡単に自分だけのAIサービスの開発が可能になってきています。
AI開発がこんなに簡単にできるなんてわくわくしませんか?
自分だけでAIを作ってみたいと思いませんか?
AIとは?AIでできること
実は「AI」というという言葉に対して厳密な定義がありません。
最近話題の機械学習はもちろんAIですが、電気ポットといったような製品も簡単な制御システムさえ入っていればAIと呼ぶことができるのです。
そのため「AIとはなにか?」について定義は非常に曖昧です。
なので、電気量販店で「AI搭載」っていう宣伝表記には気をつけてください。笑
なんせ電気ポッドですらAIの仲間入りができるのですから、どんなような事ができるAIか確認してから購入しましょう。
話が逸れましたが先程も述べたようにAIには定義がありません。
しかしAIでできることには定義があります。
AIでできることには、レベル1〜レベル4まで分類されています。
- レベル1:シンプルな制御を行うもの
- 簡単な分岐や条件を使った関数で制御できるものです。
- スマート家電がこれにあたります。
- スマート冷蔵庫などで、内容量が10%以下になると、消費電力を自動的に減らしてくれるものがありますが、これも「もし、内容量が10%以下になった」場合と条件を指定して、その条件が満たされた場合に消費電力を調節してくれるものです。
- レベル2:古典的な人工知能
- 大量のパターンを用意して、それに当てはまる場合に特定の処理を返すことをします。
- チャットボットに沢山のデータを与えて、このメッセージが来た時は、こう返すといったようにあたかも会話をしているかのように見せるチャットボットのイメージですね。
- レベル3:機械学習を用いるもの
- データと結果を与えて、その関連性をコンピュータに学習させることで、未知のデータに対して精度の高い結果を予測してだしてくれるものです。
- 個人でプログラミングをするときは、基本的にここまでできます。(深層学習はパソコンの負荷があるため個人での開発は厳しいことが多い)
- レベル4:深層学習(ディープラーニング)を用いるもの
- 機械学習のなかでも、特に深層学習が使われるものです
- ディープラーニングとは
- いままでの機械学習は大量のデータの処理方法と目的を与えて、機械に処理をしてもらっていました。
- ディープラーニングとは
- 機械学習のなかでも、特に深層学習が使われるものです
最近飛躍的に伸びてきている「ディープラーニング」という手法では、大量のデータと目的だけを与えて、機械に処理方法は自分で見つけてもらうという手法が流行っています。ときには、人間では思いつかないような処理方法やルールや相関関係などの特徴を発見するので、非常に注目されています。
今はレベル1.2は「AI」と呼ばれることは少なくなりましたが、レベルの高いものが必ず優れているわけではなく、やりたいことに合わせてどのレベルのAIを使うかを選択することが大事です。
そのため自分がどのようなAIを作りたいか、それがどのレベルのAIにあたるのかしっかり把握しておくことが大事です。
個人で開発できるAI
AI開発にはパソコンのスペック(PCの頭の良さや容量の多さ)が大事になってきます。会社や企業のAI開発では、部屋いっぱいにパソコンを詰め込んでやっている場合もあります。
そのため個人で開発できるAIには限界があります。AI開発をするときには下記のPCを用いるのがおすすめです。
- 一定の性能を持つゲーミングPC
- AppleのM1以降のノートパソコン
よって、個人で開発できるAIをいくつか紹介します。
- 数値の予測(株価、仮想通貨)
- 顔認識
- 物体識別
- テキストの解析、生成
想像以上に様々なことができますね。
また、一般的に普及しているAIは基本的に特化型AIと呼ばれるもので、1つの業務に特化しています。
それこそ、上で紹介した画像認識や統計予測、チャットボットなどですが、実はそれらを組みあせて使うことはまだまだ今のAIには難しいです。
AI開発に向いているプログラミング言語
次にAI開発に向いているプログラミング言語について紹介していきます。
AI開発というと今話題のPythonを思い浮かべる人が多いと思いますが、実は他にもAI開発ができる言語って沢山あります。
OSに依存せずに使用できるJavaやデータ解析が得意なMatlab、CとCの拡張言語のC++、それからバグが少ないHaskellなど様々な言語でAI開発ができます。
この中でも特にAIの開発を得意としている言語を特徴とともに大まかに紹介していきます!
- Python
- イチオシ
- 文法が簡単
- 無料で使える機械学習用のライブラリ(拡張機能)が豊富
- 機械学習のみならず、自動化やスクレイピングも得意
- R
- 統計学、データ解析が得意な言語
- 統計や機械学習はPythonより簡単にかける
- 機械学習だけではなく、データ分析にも興味がある人におすすめ
- C++
- C言語を拡張した言語のため、実行速度が高い
- 需要が減ることがない(他の分野でも使われているため)
- 機械学習に向いてないということに気づいたときに方向転換しやすい
- Julia
- 文法が簡単
- JITコンパイラという技術で、高速処理が可能(Cと同じぐらい)
- PythonやRのライブラリを扱うこともできる
- 機械学習言語のいいとこどりをしているので、これから伸びる可能性が高い
- (注意)初心者にはおすすめしない
- 最近開発された言語のため、他の言語と比較すると使用人口が少なく案件も少ない、参考文献も少ない
- 結構マニアック
筆者は初心者には断トツでPythonをおすすめしています。
なぜなら、文法が簡単ということは、読みやすく書きやすい上参考資料が多いということを意味していて、初心者には非常にやさしいからです。
さらに、試しに機械学習のコードを書いてみたいという人にも、環境構築不要で手軽にはじめられるツール(Google Colaboratory)があるためです。
詳しく知りたい人はこちらの記事も参考にしてみてください。
その次に、R、C++の順でおすすめです。
AI開発に数学は必要か?必要な知識を紹介
AI開発に数学は必要になってきます。
ほとんどのAIのモデルはデータ分析・解析の延長線上にあるので、数学的に理解していることがAIの理解に直結することが多いです。
具体的に必要な数学の知識は以下の3つです。
- 微分・積分
- 関数の傾きを出す。関数の傾きはAIの世界では「誤差」を意味する。精度の高いAIを作るため誤差を最小にすることに使われる。
- 線形代数
- 効率よく大量のデータを処理するための大量の計算式を簡単に表記することに使われる
- 確率・統計
- データの分布、正確性などをはかるために使われる
数学が苦手な人は、数学の知識を復習してからAIの学習を始めましょう!
参考までにAIの書籍(入門書を除く)を理解するためには、最低限高校2年生(数Ⅱ・B)までの数学の知識が必要です。
なので独学でAIを学ぼうとしている人で数学が苦手だった人は、高校数学を少し復習してしてから挑んだほうが楽です。
さらに数学が得意で、AIの理論的な部分を理解したい場合は、ベイズ推定、勾配降下法、ラグランジュの未定乗数法などについて学んでみてもいいかもしれません。
- AI数学が学べるオンライン講座
- Youtube「中学生からわかるAI数学」
- 機械学習で使われる関数や手法などについて、10分ほどの動画にまとめてくれているため、気軽に見れる
- 経済産業省|AIエンジニア育成講座
- 分野ごとに4つのコースに分かれている
- 数学コース
- データ解析手法コース
- 機械学習フレームワークコース
- Pythonコース
- BootCampの教材を使っているので、細かいところまで網羅している
- 2023年3月末まで無料
- 分野ごとに4つのコースに分かれている
- Youtube「中学生からわかるAI数学」
AIプログラミングの入門手順
将来的にAIが確実に発展して行く中で、AIの知識をつけたい・AIエンジニアになりたいが、なにから始めていいのかわからない・・・という人も多いと思います。
なのでここからAI開発に向けてどのように始めていいかという入門手順を4ステップにわけて紹介していきたいと思います。
AIは感覚的に理解するのが難しいと言われているので、
最初に雰囲気から理解して、そこから段々とAIの理論的な部分を学習していくのがおすすめです!
AIの知識を学ぶ
AIで何ができるか、AIがどのようにして動くかを知ることが大事です。
それらを知ることで自分のつくりたいものにイメージが付きモチベにつながり、今後学習していく言語選択にもつながります。
おすすめの入門書
図が多く、AIで生活や仕事はどう変わるのか?といったように身近の事例を使って説明してくれるためわかりやすいです。
図がきれいで、内容がわからなくても雰囲気を理解できます。かなり専門的な内容も載っているので、入門から発展まで長く使えます。
おすすめの実践本
もし、手を動かして体感してみたいという場合は、次の2冊がおすすめです。
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
→スクレイピングやデータ分析、機械学習などについて幅広く学べる一冊です。サンプルコード等も載っていて実践的ですが、ある程度コードが理解できる中級者向けではあります。
内容が幅広いので、AIでやりたいことをすべて体験してみたいという人や、とりあえずやりたいことがないから全部やってみてから決めたいという人におすすめですね。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
→機械学習の重要な概念であるディープラーニングの本格的な入門書です。技術的な概要だけではなく、なぜそうなるのかも含めて一歩踏み込んだ内容となっています。
AI開発できる言語を学んでみる(Pythonがおすすめ)
本を読んで概要をつかんだところで、実際手を動かして開発に向けて知識をつけていきます!
AI開発できる言語については、上のほうでも紹介しましたが、自分に合いそうな言語を選んで学びます。
そうすることで、自分のプログラミング及びAI開発の適性を測ることもできます。
もし適性があれば、AI開発前の基礎づくりにもなりますし、仮にプログラミングに向いていなくても早い段階で別の事に力を注くことができます。
そのため、実際AI開発できる言語を選択して、一度学んでみましょう!
AI開発をやってみる
AIについての知識とプログラムできる言語について学んでベースを作ったところで、待ちに待ったAI開発をすることができるようになります!
AIには、大きく分けて以下の三分野がありますが、言語処理が一番簡単なのでそこからやってみるのがおすすめです。
- 言語処理
- 画像処理
- 音声処理
ただ、やはりAI開発は大学の研究室や企業でも研究されているように簡単なことではないので、この段階でつまづきを感じる人が多いです。
AI開発は独学で可能?
よくAI開発は独学で可能かという質問をいただくことがあります。
結論からいうと、不可能ではないが、かなり過酷な努力はしないといけないので、独学でAI開発をする人はほんの一握りです。
なぜらなら独学でAI開発をしていく場合、必要になってくるのが以下のものになってきます。
- AIのモデルに使われる数学的な概念を理解できる基礎知識
- パソコンの環境や周辺機器を個人で整えることができるぐらいのITリテラシー
- 独自で自分に合うAI学習ツールを探しあてる能力
- エラーに出会っても自力で解決できる能力
そのため、AI開発の独学は非常に難しいものになっています。
AIプログラミングを学べるおすすめのプログラミングスクール
AI開発の独学は過酷であることを説明しましたが、AI開発をする中で手助けとなってくれるようなプログラミングスクールを紹介します。
プログラミングスクールと一概にいっても、様々な種類があります。
対面のスクール、オンラインのスクール、授業が充実しているスクール、メンターのサポートが徹底しているスクールといったように、自分の学習スタイルにマッチしたスクールを選びましょう!
AI開発ができるプログラミングの中でも特徴的なものを4つ紹介します。
- GeekSalon
- 大学生専用プログラミングスクール
- オリジナルプロダクトを作ることができる
- メンターサポートあり、時間外レッスン可
- 短期間(3ヶ月)で実践的なスキルを身につけることができる
- AIコース・Pythonコースがあり自分のレベルにあったものを選択出来る
- ¥149,490 /3ヶ月
- (2023年7月現在)
- AI Academy BootCamp
- オリジナルプロダクトを作ることができる
- オンラインマンツーマンの演習授業を提供
- 「Python入門コース」「データサイエンスコース」「機械学習エンジニア」コースを提供
- 6ヶ月で実践的なスキルを習得
- 298,000円 /6ヶ月
- Samurai Enfineer
- オリジナルプロダクトを作ることができる
- 現役エンジニアメンターのサポート
- 時間外対応も対面レッスンもOK(メンターが合意の場合)
- 3ヶ月、6ヶ月、9ヶ月、12ヶ月と学習期間を選ぶことができるため、社会人の方にもおすすめ
- 学割あり
- Aidemy
- AI講座だけではなく、Python特化型の他の講座も提供している
- メンターは付いていないが、チャットサポートあり
- 無料プランと有料プランがあるため、試してみたい人におすすめ
プログラミングスクールにかかる料金の相場としては、仕事で本格的なレベルのもので学ぶ場合、30万〜100万程度の受講料が必要になってきます。
ただ、入門レベルや部分的なものだけを補うような学習方法(本や講座の購入)の場合、よりコスパよく(金額にして3万〜5万程度)でも学ぶことができます。
本で独学するのも、プログラミングスクールに通うのも、メリットデメリットがあります。自分にあった、継続できる勉強方法を見つけることが重要です。
いかがでしたでしょうか
AI関連の事業はこれから発展していきます。
そしてAIが普及すればするほど、AIを開発するためのAIエンジニアの需要が増えてきます。
しかし、AIを学ぶにあたっては専門的な知識が必要になります。
是非この記事で紹介した、おすすめ言語や学習方法を参考にして、自分に合った方法でAIプログラミングの習得をめざしてみてください。