AI・機械学習・ディープラーニング - yuzinha/learning GitHub Wiki

AI

機械学習とプログラミングの違い

機械学習においてはつまづき方が普通のエンジニアリング(プログラミング)とちょっと違う、マインドセットをエンジニアリングとは切り替えたほうがいいという話。

  • 機械学習でつまづくのは難しいパズルの問題でつまづくのに似ている(少しずつ解いていくというステップがない)
  • プログラミングでつまづいたときには、解決のための手がかり(ログ、デバッガー…etc)を集めることはわりと簡単。機械学習はそこに時間がかかる。
  • だから、プログラミングでよくある「うまくいかない→とりあえず手を動かす→何だかよくわからないけど動いた」というプロセスは機械学習ではまずない。
  • しかも、プログラミングの場合は「プログラムが動いている=うまくいっている」といえるが、機械学習の場合「動いている≠うまくいっている」の場合がある。
  • プログラミングはfeedback loopが短くて、そのことに慣れすぎている。機械学習はfeedback loopが長いので、基本的にlong iterationになりがち。

Switching from experimenting a lot and thinking a little to experimenting a little and thinking a lot...

  • 解決のための手がかりを得るのに時間がかかる→とりあえず手を動かす前にプログラミングでは考えられないほど長い時間ひたすら考える時間が必要。
  • もっと考えろ!...といっても根性論ではなく、「死ぬほどログ(メモ)を取れ」
  • ログの取り方についてはこちらを参照 第9回 ログのすすめ:継続は力なり―大器晩成エンジニアを目指して|gihyo.jp … 技術評論社「99%のログは読み返さない」「自身との対話が大事」「丁寧に書くというプロセスを経て,考えが整理される」

もっとツールがこなれてくると、またちょっと事情がかわってくるかもしれない。