背景と目的
方向性を間違えて明後日の方向に勉強してしまっては勿体無いので、まずはどういう勉強をしたらいいのかwebベースで調べて、計画します。
結論
- 下記サイトが非常によくまとめられているので下記サイトをシラバスとして取り扱う https://blog.kikagaku.co.jp/2020/04/06/how-to-learn-ai/
- 実際の学習は下記「ディープラーニング入門Chainer チュートリアル」で進める https://tutorials.chainer.org/ja/index.html
- 開発環境はGoogle colaboratory(ブラウザで実行できる手軽さがあるようです)
内容
下記サイトを参考に計画しました。
https://blog.kikagaku.co.jp/2020/04/06/how-to-learn-ai/
-
AI でしたいことを決める
まずはAIとは何か、今までのシミュレーションとは何が違うのかをしっかり理解することが必要だと思っています。ここがしっかり分かれば自然とできることしたいことが分かってくると思います。したいことというよりは危機感がモチベーションです -なぜAIを勉強しようと思ったのか
私情なので、飛ばしても構いません。現職のメーカーで技術開発をしていく中で、AIが頻繁に登場してきます。詳しく書くことはできませんが、私が入社した数年前に比べてAIを業務利用とする動きは日に日に近づいてきてます。自社情報はもちろん、他社がどんなことをやっているのかも含めてです。
将来、効率的に問題解決できる手段にAIがくるのは間違い無いと思っています。だからAIを使いこなせる人が、効果的な提案活動もできるようになると思います。
ですので、今のうちからAIを勉強して将来AIをつかいこなせるようになりたいと思って勉強します。 -
学習を進めるための全体像を理解する
基礎は、大きく下記を学べばいいみたいです。
機械学習に必要な数学
Python
機械学習に関する知識
ITを知るためにプログラミングスクールにも通いましたが、この手の言語は、誰でもできてしまう時点で参入障壁の低い分野であり競争人口が多く、いわゆる量産型エンジニアになってしまうのを危惧しました。ですので、基礎に専門性の高い内容を含んでいるのはgoodです。
- 最低限の数学 下記の内容を抑えておけば良いようです。私の場合、太字の内容は新たに学習が必要そうです。 微分(偏微分まで) 線形代数 基礎統計(平均、分散、標準偏差など) 単回帰分析の数学 重回帰分析の数学
- Python 学習環境はとりあえずVSCodeで問題なさそう。chainerというオープンソースライブラリが紹介されていて、実際にプログラミングしながら覚えるには良さそう。
- 機械学習
下記のカリキュラムを抑えると良いみたい。専門書レベルなので購入の必要ありかな
教師あり学習の代表的なアルゴリズム
重回帰分析, リッジ回帰, ラッソ回帰, ロジスティク回帰, k 近傍法, サポートベクトルマシン, 決定木, ランダムフォレスト, 教師なし学習の代表的なアルゴリズム, k 平均法, 主成分分析, ハイパーパラメータの代表的な調整方法, グリッドサーチ, ランダムサーチ, ベイズ最適化, 分類の代表的な評価指標, 正解率, 適合率, 再現率, F 値
さらにディープラーニングについても勉強する必要あり・・・
ニューラルネットワークの計算(順伝播), 線形変換, 非線形変換 ,ニューラルネットワークの計算(逆伝播)
誤差逆伝播法, 勾配降下法, ミニバッチ学習, ニューラルネットワークの実装(TensorFlow もしくは PyTorch)機械学習まわり濃すぎてビビる 以下取り扱うデータについて
画像データ, 畳み込みニューラルネットワーク (CNN), 物体検出のアルゴリズム (R-CNN 、YOLO 、SSD など), セマンティックセグメンテーションのアルゴリズム, 文章データ, 文章データの特徴抽出方法(Bag of words 、Word2Vec など), 機械翻訳のアルゴリズム (Seq2Seq 、Attention など)
時系列データ(1/1 の来店者数は 100 人のデータに前後関係が存在するデータ)
再帰型ニューラルネットワーク (RNN 、LSTM 、GRU など)
畳み込みニューラルネットワーク (CNN)
表データ(Excel のシートに記載されるようなデータ)
特徴量エンジニアリング
発展的な機械学習アルゴリズム (XGBoost 、LightGBM など)