いまゼロから学ぶディープラーニングを読み進めています。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
斎藤 康毅
オライリージャパン
売り上げランキング: 69

目的としては機械学習を使った画像処理をやってみること。よくあるピカソとかゴッホの画風を写真に対して適用したいと考えていて、rebuild.fmでもnaoyaさんがやっているのを聞いてチャレンジしてみようと思った次第。

技術ネタはQiitaにアップしているんですが、こういう学習途中でしっかりとした説明ができなさそうなものは自分のブログに書くようにしています。

もちろん、自分の専門であるiOSやSwiftでも知らないことばかりなので毎度毎度きちんと学習して書いているんですが、畑が違う分野はこのようなところで書くようにしています。

で、この本は最初はPythonの文法から始まるんですが、Pythonを書いたことがあったり他の言語を触ったことがあれば大体わかりそうなのでゆるく読み飛ばす感じで良いと思います(僕がそうなんですが、Pythonでスクリプトを書いたことがある程度であれば問題ないかと思います)。

なお、本文はほとんどメモです。

活性化関数について

  • パーセプトロンとニューラルネットワークの違いは活性化関数
  • シグモイド関数の滑らかさがニューラルネットワークの学習において大事な意味を持つ
  • ステップ関数もシグモイド関数もどちらも非線形関数
    • ニューラルネットワークは活性化関数に非線形関数を用いる必要がある
  • ReLUは0を超えていれば入力をそのまま出力、0以下なら0を出力する
    • max関数だと思えばOKなのかな?
  • 2次元配列=行列=matrix
  • 出力層で利用する活性化関数は問題の性質によって変わり、以下が一般的とされる
    • 回帰問題 -> 恒等関数
      • 恒等関数は入力をそのまま出力する関数
    • クラス分類問題 -> シグモイド関数
    • 多クラス分類 -> ソフトマックス関数

     

  • 分類問題と回帰問題(機械学習はこの2つに分類できる)
    • 分類問題: データがどのクラスに属するか
    • 回帰問題: 入力データから数値の予測を行う

     

  • 次は3.5.1の恒等関数とソフトマックス関数から

思ったこととか

この本めちゃくちゃ読みやすいです。

僕はモロ文系で数学とか記憶の彼方状態なんですが、数式がコードに落とされて、そこでほぼ完全にやっていることを理解できます。

かなり売れてるみたいですし、Amazonの評価もとても高いのですが、その理由もわかります。翻訳書ではないのもポイントかもしれません。著者本人の言葉で書かれていることでより理解が深まるのかもしれません。

で、最初に書いたように僕がやりたいことは画像処理なんですが、現時点では雲をつかむのに等しい状態で、ここからどうやって画像処理につながっていくのか今のところ全く分かりません。

でも読み進めていれば何とかなりそうな気がしてきたので、じっくり腰を据えて取り組んでみようと思います。