ゼロから作るDeep Learning 2章 パーセプトロン

最近、ゼロから作るDeep Learningを読んでます。現時点で4章まで読み終えてますが、ほんと読みやすいと思います。筆者が分かりやすく伝えようとしている熱意を感じる気がしていて、この方が他の書籍も出されたら是非読んでみたいと思ってます。

で、今回は2章 パーセプトロンです。読み終えてからエントリーを書くでもいいかなと思ってたいたのですが、手元のメモのボリュームが結構増えたこともありますし、この本の読書会もやってるのでそのメンバー向けに共有する意味でも、章ごとにエントリーを書こうかなと思いました。

ということで、以下2章に関するメモです。

  • 2.1 パーセプトロンとは
    • “本書では、0 を「信号を流さない」、1 を「信号を流す」に対応させて記述します。”
  • 2.3.3 重みとバイアスによる実装
    • “ここで −θ をバイアス b と命名しましたが”
      • (2.1) 式においてθを閾値としていたが、(2.2) 式においては 0 を敷居としており、b を右辺に移行すると -b となるので前述のように説明している模様。
  • 2.4.2 線形と非線形
    • “パーセプトロンの限界は、このように 1 本の直線で分けた領域だけしか表現できな い点にあります。図2-8 のようなクネッとした曲線をパーセプトロンでは表現できな いのです。” -> 2.5 多層パーセプトロンならできる。
    • “線形・非線形という言葉は機械学習の分野でよく 耳にしますが、イメージとしては図2-6 や図2-8 のようなものを頭に浮かべることが できます。”
      • 線形性とは違う認識でいい?線形=直線=1次関数で非線形は二次関数以上。 ← 3.2.6 非線形関数に説明があるように線形関数は直線でいい。一方で非線形関数は二次関数だけでなくシグモイド関数やステップ関数もある。
  • 2.6 NAND からコンピュータへ
    • “コンピュータの内部ではとても複雑な処理を行っているように思えますが、実は (驚くかもしれませんが)NAND ゲートの組み合わせだけで、コンピュータが行う処 理を再現することができるのです。”
    • “理論上 2 層のパーセプトロンであればコンピュータを作 ることができる、と言えます。というのも、2 層のパーセプトロン(正確には活性化 関数に非線形なシグモイド関数を用いたもの:詳細は次章を参照)を用いれば、任意 の関数を表現可能であることが証明されています。しかし、2 層のパーセプトロンの 構造で、適切な重みを設定してコンピュータを作るとなると、それはとても骨の折れ る作業になるでしょう。”
      • すげーな。。

2章に関してはあまりメモがなかったですね、そういえば。。そもそも2章は分量少ないですし、Python機械学習プログラミング 達人データサイエンティストによる理論と実践 impress top gearシリーズについても別途読書会を実施していて、そちらでパーセプトロンについては勉強してたので、別の切り口で説明していて理解が深まったという感じでした。

次回はゼロから作るDeep Learning 3章 ニューラルネットワーク - n3104のブログです。