« DevOpsがアジャイル開発を促進する | トップページ | SaaSのビジネスモデルがアジャイル開発を促進したという仮説 »

2020/06/13

機械学習が抱える問題

機械学習(深層学習も含む)が抱える問題とは一体、何だろうか?
「scikit-learnとTensorFlowによる実践機械学習」を読みながら、考えたことをラフなメモ書き。
初心者のメモなので、間違っていたら後で直す。

【1】機械学習が抱える問題とは一体何だろうか?
機械学習の主要なタスクは、学習アルゴリズムを指定して、訓練データを元にモデルをFitさせること。
つまり、まずいデータ、まずいアルゴリズムに問題の原因がある。

「scikit-learnとTensorFlowによる実践機械学習」で一番興味を惹いた点は、「複雑な問題ではアルゴリズムよりも大量のデータの方が重要になる」という考え方が論文で紹介されていることだ。
つまり、最適なアルゴリズムを考えるよりも、大量データを元に、統計アルゴリズムを駆使する方が、より良い最適解を得られることを意味する。
特に、ディープラーニングのように、特徴量を自動的に導出できる場合がそうだ。

つまり、天才が優れたアルゴリズムを考え抜くよりも、コンピューティングパワーに任せて、モデルに大量データを食わせてモデルを訓練する方が最短の解決方法になるわけだ。

しかし、インターネットが発明されるまでは、大量データを採取することすら難しかった。
またコンピューティングパワーも不足していた。
2010年代になってようやく、クラウドとGPUなどにより、大量データをいくらでも機械学習アルゴリズムに食わせることができるようになったわけだ。

特に、GAFAのように、BtoCのSaaSのビジネスモデルの場合、消費者の購買活動は全て手に入れられるので、ビジネスの副産物として大量データをかんたんに入手できる。
そして、そのデータは個人を特定できるデータなので、データの質もいいはずだ。

【2】機械学習の最大の難問は、過学習への対応方法だろう。
モデルが訓練データで良い性能を発揮しても、未知のデータである汎用データに対し性能が悪ければ、過学習に陥ってしまう。
つまり、モデルが訓練データにFitしすぎて、訓練誤差は小さいが、汎化誤差は小さく収束しないことを意味する。

過学習への対策としては、次元削減や交差検証などがある。
交差検証は、訓練データと汎化データの品質を保つような仕組みが組み込まれていて、よく考えられているなと思う。

次元削減は、高次元空間ではデータはスパース(疎)になりやすいという次元の呪いを解決するために、色んなアルゴリズムが作られている。
次元削減によって、特徴量を自動計算できて、シンボルグラウンディング問題を解決させるわけだ。

この辺りを考えると、昔、ソシュール哲学の本を読んだ時に何を言っているのか分からなかった時を思い出す。
プラトンのイデア論を言い換えれば、本来の真理ないし実体と、それを表現する記号や言語があり、記号や言語の背後には特徴量というイデアがあると思える。

【3】ディープニューラルネットワークの考え方は面白い。
畳み込みニューラルネットワーク(CNN)は画像認識、再帰ニューラルネットワーク(RNN)は時系列データに強い。

CNNでは、画像の一部の要素に反応して、それらを次元削減してどんどん特徴量にまとめあげていく。
人がぼーっと夕焼けや景色を見ている時、そういうアルゴリズムで見ていると思うと、何となく腑に落ちる。

特に、RNNが自然言語処理に強い、という意見が興味深かった。
RNNでは、LSTMという長短期記憶の概念が出てくるが、これは、TOEIC勉強で習った「retain(保持)」の考え方に似ている。
日本人は英語を返り読みする悪い癖があるのは、長文の英文にある単語をretainすることができないからだ。
つまり、文章の単語の前後を短期記憶して、すぐに取り出して意味を見出す訓練が足りない。
RNNはその仕組みを実現しているから、自然言語処理に向いているのだろう。

【4】深層学習を含む機械学習がいくつかの従来の問題を解決してきた現在、今後、深層学習は人間の知能により近づき、いつかは追い越すかも知れない。
カーツワイルは技術的特異点が2045年と主張した。
確かに、コンピューティングパワーが進化すれば、単純な作業は全てAI化されるだろう。

しかし、大量の訓練データでFitしたモデルは、人間の知能を本当に超えるのか?
気になる点は、そういうモデルが意識を持つのか、という点だ。

直近のディープニューラルネットワークのブームは、先カンブリア紀の生物大爆発に例えられる。
つまり、生物が眼を発明したことで飛躍的に進化し、その原型は作られた。
しかし、生物が意識を持ち、自ら文明を作り出すまでに、さらに5億年以上の歳月が必要だった。
そこから類推すると、ディープニューラルネットワークに後もう一つの発見や発明が必要な気がする。

強化学習や敵対的生成ネットワーク等のように、AIやロボットが自ら進化していく仕組みは提案されている。
でも、まだ何か足りない気がする。
それを考えるのも楽しい。

|

« DevOpsがアジャイル開発を促進する | トップページ | SaaSのビジネスモデルがアジャイル開発を促進したという仮説 »

統計学・機械学習・深層学習」カテゴリの記事

Python」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« DevOpsがアジャイル開発を促進する | トップページ | SaaSのビジネスモデルがアジャイル開発を促進したという仮説 »