これから機械学習を学ぶにあたって、理論はどこまで追うべきか?
自分も最初、どこから始めるべきか分からず都度調べながら学んでいました。
これは中々に効率が悪かったので、ちょっとした指標を設けておきます。
研究者(リサーチャー)の方であれば、詳細まで追えることが求められることが多いので、専門的な内容まで知る必要があります。
数学を理解していないくても、使えることは使えますが、どういう理由でどの手法を選択するかの判断をすることができません。
これは、本質的な意味で価値を出すことはできないので、仕事ができない人材とみなされてしまいます。
AutoML※などのノーコーディングで精度が上がろうとも、結果を考察し業務に生かすのは人の仕事なので、大まかな仕組みについては理解しておく必要があります。
※機械学習の知識がなくても高品質な機械学習モデルが構築可能
理解するのはアルゴリズムです。現在使われているアルゴリズムの種類は様々あります。
ただ、大枠で見れば、それほどパターンは多くないので、それらの原理的な仕組みについて抑えておけば問題ありません。
ここで紹介するアルゴリズムの仕組みを知っていれば、多くのアルゴリズムについて全体像のイメージが掴めます。
学習アルゴリズムの大別
アルゴリズムは大別すると4つに分けることができます。
距離を用いたアプローチ
関数近似を用いたアプローチ
決定木を用いたアプローチ
確率分布を用いたアプローチ
距離の定義については、「距離の公式」「ミンコフスキー距離」「マンハッタン距離」などを調べておくといいです。
関数近似は線形回帰(y=ax+b)やSVMです。
意識しとくのは、入力した値(x)を元に何かしらの値(y)を予測する問題だということ
決定木はアキネーターのようなイメージで2択を繰り返して分類していくものです。
確率分布は最尤法などの至る所の裏側で用いられています。
正規分布の性質を用いて、95%予測区間を推定したりします。
決定木の学習を行う上での注意点
決定木を作成するにあたっては変数の選択順番が重要で、変数を選択するにあたっての優先順位付けを行う必要がある。
具体的には、変数の順番はデータの判別度合いが高いように指標を設定すると良い
結論
ここまでがざっくりとした概要でした。いきなり専門的な内容に入る前にまずは大別したアルゴリズムをおさえておけば、次への理解がスムーズになります。
もう少し詳しく知る
画像認識で良く出てくるフィルタ処理とは?
画像から輪郭を抜き出す方法(エッジ検出)
画像をぼかす方法
OpenCVで良く使われるが、欠点としてフィルタがヒューリスティックであるがために、フィルタの種類が少ない
そこで、使われるのがCNN。
CNNが優秀なのはヒューリスティックだったフィルタの作成をデータから自動的に行うことができます。これがCNNが表現力が高い理由です。
ディープラーニングは基本CNNがベースになっており、CNNは結局フィルタ処理が元になっている。何となく全体像が見えてきました。
理論を理解するメリットをまとめると
有機的なつながりとして分野全体を把握できる
一度理解してしまえば大枠は変わらない
つまり、理論をある程度抑えるほうが情報のキャッチアップが楽になるということです。
確率分布のところで軽く触れた最尤法は多くのアルゴリズムのベースとなっています。その最尤法は確率分布を元にした確率モデルがベースになっている。
これを踏まえると最尤法が使われている、回帰分析・ディープラーニング・ベイズを用いたモデリングの理解がスムーズになります。
最尤法:確率分布のパラメーターを推定する方法
ex) 平均、標準偏差、分布など
良くみる分布としては、正規分布・ポアソン分布・二項分布があります。
この辺りの性質はおさえておくと楽です。
備考
尤度の式は確率の掛け算によって表されているので、微分がしづらい
そこで、足し算の形をとるために対数関数をとる
論文のリサーチ
基本知識を理解できると、最先端技術を追っていきたい欲が出てきます。
いきなり手当たり次第にやってしまうと、収拾が付かなくなるので初めての方はDeepMindを中心にキャッチアップを行っていくのが良い。
高校レベルの英文法は求められるので、研究者を目指すのであればおさえておきたい。
論文の探し方はarXivを便りにすることになります。Google Scholarでも良いが、最新論文や該当するものが見つからないことが多いので個人的にオススメしない。
arxivのサイト内から見つけるのはしんどいので、google検索で「キーワード + arXiv」と入力するのが手っ取り早いです。
論文の読み方
論文において強調したいポイントは基本的にAbstractに記述されている 注意点としては、基本的に先行研究との差分が必ず強調されることを念頭に置く必要があります。 だから、先行研究を踏襲するポイントは簡単に流すことが多い したがって、そのテーマにおけるエポックメイキングな論文を2~3読んでおくと理解がスムーズになります。
Abstractを読みながら、メインテーマの見当をつけるのが、読み初めには行うと良い。
IntroductionはAbstractの詳細版です。Abstractを読んで理解しづらい部分があれば補足的に確認すればいいです。
メインとなる考え方については数式や図、アルゴリズムなどで表現されています。 Abstractの次に力を入れて読む内容です。
基本的に図→数式→解説→アルゴリズムの流れが読みやすいです
実験結果は最初のうちは読み飛ばしてしまってもいいです。ただ、評価のメトリクスを意識して追っておくと便利です。 結果を解釈しておくことで、類似タスクを用いてどのくらいの結果が出せるか当たりをつけることができるからです。
結論、Absractを読んで概要を把握した上で読みたい箇所を詳しく読むスタンスで良いです。
関連テーマごとの読んでおいたほうがいいリスト
AlexNet(2012)
VGGNet(2014)
ResNet(2015)
MobileNets(2017)
RCNN(2013)
SPPNet(2014)
Fast RCNN(2015)
Faster RCNN(2015)
SSD(2016)
Feature Pyramid Network(2016)
FCN(2014)
U-NET(2015)
Mask R-CNN(2017)
GAN(2014)
DCGAN(2015)
Word2vec(2013)
Seq2seq(2014)
Attention(2014)
Transformer(2017)
BERT(2018)
XLNET(2019)
Deep Q-Network(2013)
Rainbow(2017)
Ape-X(2018)
R2D2(2019)
R2D3(2019)
おまけ
AIとビジネスを紐づけるために必要な考え方
インタフェースを考えた上で、裏側をAIで置き換えられるかという議論がするのが良い←基本的な考え方
まずはこの思考の仕方をおさえる。