DRYな備忘録

Don't Repeat Yourself.

人工知能とか機械学習とかニューラルネットワークとかディープラーニングとかぜんぜん分からんのでインターネットかき集めてざっくり理解したリンク集とまとめ

実施したルール

  • 読み始めたら途中で投げない
    • わかんなくてもとりあえず最後まで読む
  • 100%理解しようとしない
    • ざっくりでいいので自分なりに一言でまとめる
    • ぜんぜんわからん、でも可

下記のリンクから、特に理解を助けたものの抜粋

以下、僕が読み進めたときのログなので読まなくていいです。あと、下記のリンクを読み漁ったあとの、自分なりのまとめが最後にあります。すっ飛ばしたいひとはどうぞ。







f:id:otiai10:20171112190654p:plain

すげー雑に読み漁った

  1. 機械学習とは?
    1. 機械学習 - Wikipedia
      • なお、データ集合を解析するので、統計学との関連が深い
      • 1959年、アーサー・サミュエルは、機械学習を「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」だとした。
    2. 機械学習をこれから始める人に押さえておいてほしいこと - Qiita
    3. 「機械学習」と「ディープラーニング」は何が違うのか? | MUFG Innovation Hub
      • ディープラーニングでは区別するための「目の付けどころ」をAIが自分で学習し、その性能を向上させていく。
    4. 「機械学習とは何ぞや」をゆるーく説明してみる - 六本木で働くデータサイエンティストのブログ
      • 本人いわく古いが、参考になるものが多くあった
    5. 「統計学と機械学習の違い」はどう論じたら良いのか - 六本木で働くデータサイエンティストのブログ
      • ただ、線形モデル族のようにヒトが直感的に理解できる形でモデルが出来上がるとは限らないのが機械学習の特徴で、そこが統計学との大きな違いかもしれません。
    6. ヒトの直感的理解は単変量モデルまで、直感を超えたければ多変量モデルへ - 六本木で働くデータサイエンティストのブログ
      • このように、多変量モデルを用いることでヒトの直感的理解を超えた「全体論」的な特徴を捉えることができるというのが今回の取り組みで示したかったことです。
    7. 「正答率100%」になってしまう機械学習モデルの例を挙げてみる - 六本木で働くデータサイエンティストのブログ
      • つまり、今回のテニス四大大会のデータで言えば「同一カードでの対戦が5回とか10回とか当該期間内にある場合」なら説明変数に含めても良いわけです。
    8. おまけ: クラウド機械学習の進歩で「プラモデルのように機械学習システムが作れる」時代が到来しつつある - 六本木で働くデータサイエンティストのブログ
    9. 「ニューラルネットワーク」や「機械学習」って何?--AIの基本用語をおさらい - CNET Japan
  2. 人工知能とは?
    1. 人工知能のやさしい説明「What's AI」
    2. 人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)
    3. 【5分でわかる】人工知能(AI)とは?概要や種類をわかりやすく解説 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
      • 雑誌っぽい読み物だった↑ かつPR
    4. 人工知能 - Wikipedia
      • 近年では「サポートベクターマシン」が注目を集めた。また、自らの経験を元に学習を行う強化学習という手法もある。
    5. 人工知能とは - IT用語辞典 Weblio辞書
    6. 人工知能(じんこうちのう)とは - コトバンク
    7. 総務省|平成28年版 情報通信白書|PDF版
  3. ニューラルネットワークとは?
    1. ニューラルネットワーク - Wikipedia
      • 狭義には誤差逆伝播法を用いた多層パーセプトロンを指す場合もあるが、
        • たぶん「機械学習」の実装パターンのうちのひとつとして、複数のニューロンが限られた演算をし、その集約としてアウトプットを出す、ということなのかな?
      • バックプロパゲーションは主に中間層が1層の時に使われ、中間層が2層以上ある時は深層学習と呼ばれ、
        • お、いいですね、深層学習の定義が出てきた
    2. ニューラルネットワークの基礎解説:仕組みや機械学習・ディープラーニングとの関係は |ビジネス+IT
      • 逆伝搬法「Back Propagation」。正解値の誤差をとり、各層にフィードバックし、重みを調整しながら、正解値に近づけていく
      • ↑ この資料はかなり分かりやすかった
    3. 「ニューラルネットワーク」とは何か:「AI」「機械学習」「ディープラーニング」は、それぞれ何が違うのか - @IT
      • 最初に生まれた、最も包括的な概念がAI。次に発展した機械学習がその中に含まれ、最後に登場したディープラーニングがさらにその中に含まれる構図だ。
    4. 数学知識もいらないゼロからのニューラルネットワーク入門 | TechCrunch Japan
      • 例えば画像認識においては、畳み込みニューラルネットワーク(Convolutional Neural Network=CNN)というタイプのニューラルネットワークが使われている。
      • モノをまとめて(本、おもちゃ、電子機器、アート、服などへ)分類していく作業についてよく知っていることだろう。畳み込みレイヤーも同じような作業を通じて、画像をピクセルの特徴ごとにバラバラにしていっているのだ。
        • なるほどなぁ
    5. ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
    6. ニューラルネットワークと深層学習
      • 今のところ、パーセプトロンで構成されたニューラルネットワークに上手に学習させる方法は明らかになっていません。この問題は、シグモイドニューロンと呼ばれる、新しいタイプの人工ニューロンを導入することによって克服することができます。
      • 紛らわしいことに、歴史的理由から、このような複数層のネットワークをときおり多層パーセプトロン(multilayer perceptrons)、またはMLPsと呼びます。しかしこれらはパーセプトロンではなく、シグモイドニューロンです。
      • Cauchy–Schwarz inequality - Wikipedia
        • コーシー・シュワルツの不等式、なつかしすぎて吹いたww
    7. ニューラルネットワーク
    8. 強化学習入門 ~これから強化学習を学びたい人のための基礎知識~ - Platinum Data Blog by BrainPad
      • 教師付き学習、教師無し学習、強化学習、の対比がわかりやすく書かれている
  4. ディープラーニングとは?
    1. ディープラーニング(Deep Learning)とは?【入門編】 |
    2. ディープラーニング - Wikipedia
      • 前文をほぼすべて抜粋します
      • 深層学習登場以前、4層以上の深層ニューラルネットは、局所最適解や勾配消失などの技術的な問題によって充分学習させられず、性能も芳しくなかった。しかし、近年、ヒントンらによる多層ニューラルネットワークの学習の研究や、学習に必要な計算機の能力向上、および、Webの発達による訓練データ調達の容易化によって、充分学習させられるようになった。その結果、音声・画像・自然言語を対象とする問題に対し、他の手法を圧倒する高い性能を示し、2010年代に普及した。しかしながら、多層ニューラルネットが高い性能を示す要因の理論的な解明は進んでいない。
      • ここ → しかしながら、多層ニューラルネットが高い性能を示す要因の理論的な解明は進んでいない。
        • これヤバない!? めちゃくちゃ中二心くすぐられる!!
    3. ディープラーニングは何が「ディープ」なのか :日本経済新聞
    4. ディープ・ラーニングとは? | SAS
      • 具体的な用途などについて
    5. ディープラーニング – これだけは知っておきたい3つのこと - MATLAB & Simulink
    6. ディープラーニングとは - コトバンク
    7. 初心者向け「機械学習とディープラーニングの違い」をシンプルに解説 - GIGAZINE
      • ディープラーニングを用いるかべきかという動画
    8. ディープラーニングの判断根拠を理解する手法 - Qiita
      • 最後に、ディープラーニングの「解釈性」の問題
      • 「何かを学んでいるはずだが、何を学んでいるかはよくわからない」
      • 今後より多くの課題を解決していくために、これらの「説明」を行う手法はより重要になってくると思います。
      • 機械学習ないしディープラーニングは、もともと「説明」ではなく「予測」「判断」に特化して進化していき、実用に至るまでに高度に発達した一方で、1周まわって、なぜそう判断されたかが、もはや人間には理解しえない形になっており、それを「説明する」という学術分野がすでにある
      • これはもう、おもしろいことに、いわゆる生物学の生物に対する態度に似ている、と思いました

以上。

上記を読んで、自分なりのまとめ

  • AIというのは概念。知能っぽいものを人工的につくりたい!的な気持ち
    • 人間がアルゴリズムであったり物事の特徴を完全に捉えたうえで実装するのに対し
    • ある程度、コンピュータが「自律的に考えている」ように見える、という状態を指す、あくまで概念
  • 機械学習(ML)というのは、AIという概念の実現手法のカテゴリのひとつ
    • よく統計と比較される
    • 統計を既存データのグループ分けと位置づけた場合、機械学習がめざすものは、既存データを元にした、未来の入力に対してあるていど予想ができる状態
    • 単純な漸近線によるグループ分けよりも、複雑な回帰曲線で表現される曖昧な事象に対応したい
  • ニューラルネットワーク(NN)というのは、機械学習実装パターンのひとつ
    • 脳神経回路網を模した設計
    • ニューロン(計算ノード)が独立して入力に対して出力を計算する
    • ニューロンは、重みバイアス、あと活性化関数という個性を持つ
    • その連鎖によって、全体的に複雑な回帰曲線を実現する
  • ディープラーニング(DL)というのは、ニューラルネットワーク構築の流派、あるいは派生
    • 歴史的には、3層以上のNNを「深層学習(ディープラーニング)」と呼ぶ
    • 層がたくさん、って意味
    • 層をたくさんにすると、豊かな判断や、思いがけない予測を、したりするかもね!しないかもね!

雑感

各層をXⅰと置くと、下記漸化式で表現される。3層の場合は、X1が入力層、X2が中間層、X3が出力層。

AiとBiはパラメータ。Aiは行列、BiとXiは縦ベクトル。Aを重みパラメータ、Bをバイアスパラメータと呼ぶ。fは活性化関数と呼び、単純パーセプトロンでは使われていなかった、つまり、 f(x)=xであったが、すると線形になってしまうので、現在は何らかの非線形関数を使う。微分可能な単調関数を使うことが一般的。最もよく使われるのはシグモイド関数f(x)=1/(1+e^{-x})
ニューラルネットワーク#順伝播型ニューラルネットワーク

  • あとこれ見ながらコード写経するのは非常に勉強になる↓

DRYな備忘録として