社会人からはじめる機械学習勉強 Week 7 – CNN・RNN・RBM

2016/2/15~2/21

深層学習

深層学習」を継続して勉強中。今週はCNN、RNN、RBMを読んでる。理論の概念理解ができる。でも実装には結びつかない。

  • Convolutional Neural Network
    畳み込みニューラルネットワーク。主に画像処理で扱われる。画像の2次元位置情報を活用し、ローカルな部分にのみ畳み込み計算を実行する。パラメータ重みの共有などでモデルを効率化することができる。
  • Recurrent Neural Network
    再帰ニューラルネットワーク。入力に対して”時間”の概念が加わったもの。自然言語処理での文章解析など、長さが決まっておらず、刻々と次の要素が表れるようなデータに用いられる。LSTM(Long Short Term Memory)についても解説有り。
  • Restricted Boltzmann Machine
    教師なし学習、生成モデル。教師なし学習なので、入力データのみから、そこに存在するデータの統計的偏り=特徴を抽出する。RBMは、入力データに存在する”特徴抽出”を物理的なモデルを使用して行うことができる。
    Deep learningでは層を重ねていくと発生するVanishing gradient問題があるので、各層ごとに独立して学習を進めていく(Pretraining)という手法が有効活用される。RBMを使うと初めの層から独立して学習を進めていくことができる。

日本語でDeep Learningについて学べる本は貴重、特にConvolutional Neural NetworkやRecurrent Neural Networkについて説明してある本はまだ少ないので重宝する。

Coursera

引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。
 PCAやった。Principal Component Analysis・主成分分析。固有値の大きい順に固有ベクトル使うってだけ、超簡単。

実践・実装

これまでずっと理論を学んできた。が、そろそろとにかく実践に進みたい。という事で、”Deep leaning 実践”でググっていくつかSlide shareを読んだ。
caffe, theano, pylearn2, tensor flow, chainerなどなどいろいろなディープラーニングライブラリがある模様。

実践ディープラーニング で勧められていたhttp://deeplearning.net/tutorial/を始めてみたい。
このチュートリアル内に書いてあるように、そのためには事前準備として、Theanoライブラリの勉強から始めることに。

Links

社会人からはじめる機械学習勉強 Week 6 – 深層学習

2016/2/8~2/14

マレーシアでは中国の旧正月で連休、ということでKota Kinabaluへ旅行へ行っていた。

深層学習

空き時間見つけて「深層学習」を読んでた。
感想:4章CNN前まで読破。理論面の理解がわかりやすい。でも実装には結びつかない。

日本語でDeep Learningについて学べる本は貴重、特にConvolutional Neural NetworkやRecurrent Neural Networkについて説明してある本はまだ少ないので重宝する。

その他引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。

社会人からはじめる機械学習勉強 Week 5 – 中期目標決め

2016/2/1 ~ 2/5

勉強中

フリーソフトで作る音声認識システムーパターン認識・機械学習の初歩から対話システムまで

 読了。前半の一般的に使える理論編が良かった。後半は音声認識の実践に特化していて、現状使う予定ないので、流し読み。

実践 機械学習システム Pythonによる機械学習プログラミング

 実践ということで実際にプログラム書きながらやって行けるけど、結構わかりづらいというか地味にコード読み込む作業が必要だったり、躓いて調べたりする時間がかかる。公開されているコードの実装も著者の実装を読み解読していくといった感じで、うまくRefactoringされていない印象。ちゃんとした基礎力をつけるにはよさそうだけど、スピード感もって学びたい自分にとってはちょっと重いかも。
 → Deferする。
 → 先に下の深層学習の本を躓くところまで読み進めていこう。

Wired A.I. 
 雑誌的な読み物、たまにつまむ程度。
 現在のA. I.に関する世界の企業(大企業・ベンチャーともに)の動向がわかり参考になる。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。

ドットインストール
 新しいプログラミング言語をさくっと学びたいときに重宝するサイト。1レッスン3分程度で高速に学んでいける。機械学習では今Python言語で使えるライブラリが多く、トレンドのようなので、Pythonを勉強することに。
 Python入門 全24回、2日で完了。

・Slideshareなど。
 牧野さんの強化学習

次読みたい本

CNNの勉強の本命

基礎理論の勉強の役に立ちそう。

将来の目標設定

興味あること洗い出し。

Major
・機械学習の会社へ行って、何らかの作業を自動化していきたい。
・金融取引を自動で行う機械。最適行動の選択。

やるべきこと
・会社決め、会社をSurveyしてくこと。
・Kaggleなどへの参加できるだけの実力を身に着ける。
 * 2017.1.4追記:結局ほかのことに忙しくて時間も無く、しなかった。2017年に入り最近ようやく始めた。

Minor 
アプリでやりたいこと、、、
・自動画像生成      → Launcher appでの異なるテーマに対するアイコン自動生成
・画像・動画のUpscaling → 高画質なコンテンツの自動復元・生成ツール、アニメや映画を高画質で見るために自分も使いたい。

やるべきこと
・CNNの学習
・機械学習ツールの学習(Chainer, Tensor networkなどなど、、、)

2月中は基礎づくり。

3月にDeep learning, neural network, convolutional neural networkに入っていけるのが目標。

4月にはDeep learning, neural network, convolutional neural networkに入ること。実際にツールをトライ&エラーで試せるようになること。

社会人からはじめる機械学習勉強 Week 4 – waifu2x

今週は出張が重なったため、勉強の進み具合は少し。

waifu2x

Deep Learningを使用したアプリケーションとして、waifu2xというソフトがあることを知った。githubにてソースコードも公開されている、オープンソースプロジェクト。

waifu2xは、超解像・ノイズリダクションソフトで、Convolutional Neural Networkを利用して、入力画像の2倍のサイズを”復元”するというもの。トレーニング時に半分に縮小された画像を入力として、オリジナル(入力画像の2倍サイズ)画像(ターゲット)を出力するように学習させる。

超解像も機械学習の分野でできるなんて知らなかったので驚いた。Deep Learning のすごいところはこれまで経験を積んできたプロが行ってきた特徴抽出からパラメータ調整といったものを、自動でしてしまうところ。

今回の画質処理の例でいうと、今までの画質処理は明るさ・コントラスト・シャープネス・カラー、、、といった様々な”特徴”があり、それぞれに対して適切な画質補正を行っていた。しかし、Deep learningではこういった特徴抽出さえ機械が勝手に学習する。機械学習の実装者はコントラストやシャープネスといった概念を知ることなく、勝手に機械が画像に存在する特徴を抽出し、それを最適にするように学習・調整を行う。

これはとても怖いことだなと感じる。今まで何十年とかけて、その分野を磨いてきた専門家が、いきなりやってきた、画像処理に関しては無知の機械学習エンジニアが作ったソフトに勝てなくなるかもしれないという事だ。

社会人からはじめる機械学習勉強 Week 3 – Deep Learning

2016/1/18~1/24

Deep learning Theoryの勉強

先週から継続して、Courseraと書籍で勉強中。

今週からDeep Learningについて学び始めた。

具体的には、先週学んだLinear regression, Logistic regressionを複数層重ねることによって構築される、Deep Neural Network、MLP (Multi Layer Perceptron)について学んだ。

Link

社会人からはじめる機械学習勉強 Week 2 – 学習開始

2016/1/11~1/17

Coursera: Machine learning

Onlineビデオで学べるCourseraを進め始めた。Courseraの設立にも携わっているAndreaw Ng教授が教えるMachine Learningのコース。とってもわかりやすい、丁寧すぎるくらい。

Coursera Official pageから学習しようとすると、次のLectureを受けるのに期間を待たないといけないため、過去のビデオが紹介されているページを見つけ出してそちらで学習していった。

今週は導入として、Linear Regression, Logistic regressionについて理解していった。

Link

書籍

割ととっつきやすそうな、フリーソフトで作る音声認識システムーパターン認識・機械学習の初歩から対話システムまでから読み始めた。前半が理論編で機械学習(パターン認識)に関する説明となっていて、後半が実際にフリーソフトを用いた音声認識の実践編となっている。

前半が読みやすく音声認識に限らない一般的な機械学習について説明されているので非常によい。まず概要をつかむ本としてはおすすめ、式の導出を細かく追ったりしなければ割とさくさく読んでいけると思う。

後半は音声認識をしたいわけでなければスキップしてよいと思う。2007年の本なので、使っているソフト・使い方なども古い情報かもしれないし。

社会人からはじめる機械学習勉強 Week 1 – 大人買い –

勉強方法

まずは勉強方法を探すところから。結論を先に書くとまずとっかかりとしておすすめなのは、以下の4つを平行しながら進めていけばいいのではないか。

  1. Coursera -Andreaw Ng 教授 の Machine Learning
  2. Slideshareでわかりやすい機械学習入門のプレゼンがいくつかあるのでいろいろ見ていく。
  3. 書籍   ― 以下のまとめサイトを参考に、自分に合うものから読んでいく。
  4. プログラミングの勉強
    機械学習の分野では、python, c言語, MATLAB あたりが使われている。pythonがトレンドな印象なので、pythonを学ぶなら
    • ドットインストール
    • python公式サイト
      なんかで学んでいく。

2014.1.4追記:今流行っているtensorflow, keras, chainer などのDeep learning frameworkはpythonで書くことができるので、pythonを学ぶのはおすすめ。
ただし、ドットインストールは無料でなくなってしまったようなので、無料で勉強したい人は他のサイト探す必要があるかも。

いろいろ調べていた中で、参考になったサイトをリストアップしてく。

方針決め、概要をまとめたサイト

自分は理系なのだけど、機械学習に関する基礎知識があるわけではないので、土台から勉強するという意味でここから始めた。

とくに1つめのリンクで細かく説明されているCourseraのMachine Learningは(ちょっと丁寧すぎるくらい)めちゃくちゃわかりやすいのでおすすめ。

2つめのリンクではわかりやすいSlideshareのリンクがいくつかあるので参考に。また、pythonを学びたい人には参考にできるリンクが見つかる。

書籍まとめサイト

真剣に勉強を始めようと思っているなら、情報がまとまって書かれている書籍を読んでいくのがいいだろう。特に理論面は書籍を読めばわかりやすいものが多いと思う。

書籍大人買い

マレーシアにいるので、書籍を気軽に買うことができない。どうせ輸入しなければ買えないので、面白そうな本をすべて一気にAmazon.co.jpで買うことにした。という事で上記のサイトを参考にしながら今回買った本のリストが以下。

他に数冊買ったのも合わせて合計4万円位したな。。。本だけで4万って。。。まあここはケチるところではないし自己投資という事でいいでしょう!

社会人からはじめる機械学習勉強 Week 0 – Romance Dawn –

本シリーズについて

社会人になってから機械学習という分野の面白さ知り、その可能性に大きな夢を感じ、とりこになってしまった著者。これから人生を懸けて取り組む仕事はこのフィールドしか無い!と勝手に確信した自分はもう一刻も早くこのフィールドへの転職をすることしか考えられなくなっていた。。。

一方、大学では物理学を専攻、プログラミングを専門としていなかった自分。機械学習・人工知能の事前知識が特にあるわけでもなく、知人にコネなどもない状態でどうすればこういった専門職に就けるのか、、、。そんな状態に置かれた中、社会人生活の仕事の合間を縫いつつ機械学習を独学で勉強し、1年以内に転職を目指す。

結論・総括は社会人からはじめる機械学習勉強 Week 28 – 最終週 内定まで。

機械学習を知るきっかけ

2015年も終わる頃、友達に将棋ゲームをしようと誘われた。将棋ウォーズというオンラインで将棋の対人対戦が出来るアプリ。

将棋連盟公認のアプリという事で、段位の認定なども行なっている。将棋連盟と提携といった大々的なビジネス、こういった形でスマホゲームをマーケティングしているのは新しいなと思い、ふと会社をネットでググってみたのがきっかけ。将棋ウォーズを作っているHerozでは、将棋ソフトの開発も行っていて、世界一の将棋ソフトPonanzaの開発者もこの会社に所属していると知る。現在、コンピュータ将棋ソフトは現在超一流のプロと同等以上の棋力を持っていて、人間がコンピューターに勝てなくなるのはもうすぐのことだろう。

そんなHerozのホームページで採用情報には“人工知能(AI)で世界を驚かす”というキャッチコピー、仕事の募集職種には人工知能エンジニアの分野がある。

将棋ソフトに対するサーベイをした結果、局面評価値の作成はBonanza Methodというブレイクスルーがきっかけで機械学習が取り入れられるようになったことを知った。過去のプロの棋譜を取り入れた教師あり学習による局面評価値の生成・次の指し手を確率として算出する。

*具体的には八木さんが開発したBonanza methodという機械学習アルゴリズムを用いることでプロの指し手候補を学習し(プロの棋譜を活用したビッグデータ、教師あり学習)、有力な指し手候補に対して α-β法という探索手法や枝刈りを用いて効率的に数手先の指し手を読み、最適な解を導いているよう。

現状、すでに非自明な局面が現れた時次に何を指すのが一番かコンピューターに教えてもらうという事が起きている。将棋・ゲームでの人工知能活用というのはあくまで一例だ。生活をしていても選択肢がたくさんある中でどれが最適な選択か迷うことはあるだろう。そんな中で機械にアドバイスをもらってよりよい人生の選択をしていくということが起こる、そんな想像がうかんだ。もっと言うと機械を使うことで人間よりも良い判断を下せるようになってしまうということだ。簡単に想像できる応用分野としては、株式市場の投資判断。今後機械が相場を操作するようになるだろう(そうするとどうなるのだろう、一瞬で常に市場最適価格が形成されるようになるのだろうか)。

別の分野で言うと機械が応用の効く自動化を獲得したともいえる。自動車の自動運転方法の獲得、制御機械の制御方法獲得などだ。。。近いうちに自動車の運転は機械にまかせっきり、皿洗いや洗濯といった単純作業を機械が自動で出来るようになるだろう。

これが意味するところは機械が”経験”を活かすことが出来るという事。機械に経験に基づく直感を与えたと言ってもいいのかもしれない。

抱負

ここまでのインスピレーションを与えてくれる人工知能の未来。これは集中して取り組む価値があると確信できる。今までいろんな分野に興味があり、八方美人で過ごしていたけれど、機械学習には取り組めると確信した。

2016年は機械学習(Machine Learning、以下ML)に全力で取り組もう。

 

おまけ:タイトルのRomance Dawn

言わずとしれた世界一売れてるマンガの第一話のタイトル。Dawnは夜明け、始まりという意味で、冒険の夜明け、物語の始まりということだ。

人工知能分野で有名な人まとめ

人名・働いている企業名・大学名・プロジェクト名・ラボ名など

ジェフリー・ヒントン Geoffrey E. Hinton

本人のサイトより

1947年生まれ、第一次AIの冬の時代にも研究を続け、今爆発的に流行っているDeep learningを生みだした。現在はGoogle Brainプロジェクトの研究者とトロント大学教授を兼務。

ヤン・ルカン Yann LeCun

本人のサイトより

Facebookの人工知能研究所、ニューヨーク大学勤務。

博士時代はヒントンの研究室に所属していた。

ヨシュア・ベンジオ Yoshua Bengio

本人のサイトより

モントリオール大学のLISA LABを率いる。また、IBMのワトソン共同研究を行なっている。AT&Tベル研究所にて、ルカンとベンジオは一緒に働いていた。

LISA LABはthanoやpylearn2を開発していて、その技術情報をチュートリアルを添えて公開しているdeeplearning.net はDeep learningに関する実装の解説・情報量がとにかくすごい。研究業界にとどまらず、これだけオープンに最先端技術を技術発信してくれているのはとても有難いことだと思う。

上記3人はよく共同研究を行なっており、NCAP(Neural Computation Program)を設立している。

アンドリュー・ング Andrew Ng

本人のサイトより

Google Brainの立ちあげ。今はシリコンバレーにあるBaiduの研究所で勤務。Stanford大学。NCAPの研究員。

人工知能の研究だけではなく、オンライン教育システムCouseraの設立をDaphne Kollerと一緒におこなっている。(MOOC=「大規模オンラインオープンコース」の)。彼のCousera 科目である “Machine Learning“はとってもわかりやすい。図が多く使われていて、数学が苦手な人でも理解できると思うのでおすすめ。(講義は英語だが、英語・日本語字幕も付けられる。)

※Couseraについてはこちらを参照

デミス・ハサビス

Gigazineより

本人のサイトは2011年から更新されていない模様。

Deepmind (ディープマインド)の設立者。ATARIのゲームを自動学習するDQNや、囲碁の分野で世界1位の棋士に勝ったALPHA GOが有名。

彼の経歴は少し特殊で面白い。コンピュータ分野を専攻後、ゲーム企業を設立して成功をおさめた後に、人工知能についてより深く学ぶために特に知識のなかった神経科学を学ぶために博士になり、卒業後にDeepmindを設立している。神経科学で学んだことを生かしているとのこと。より詳しく知りたい人はWired VOL. 20 A.I. に彼/Deepmindの特集記事などが載っているのでおすすめ。

Deepmindに関しては人工知能分野を牽引する世界の企業まとめ – ベンチャー編 –も参照。

その他参考

人工知能分野を牽引する世界の企業まとめ – ベンチャー編 –

Deepmind

ATARIゲームをの最適戦略を自動で学んでいくDQNの衝撃的な発表。2016年3月には「コンピュータが人間に勝つにはあと10年はかかる」と言われていた囲碁の分野に置いても、囲碁ソフトALPHA GOにて世界一の囲碁棋士に勝ってしまった。

これらのソフトはDeep learningと強化学習を組み合わせている。

現在はGoogle に買収されているのだが、未だにDeepmindの名前のままニュースで流れることも多いので、こちらで紹介した。

Ref: 

Preferred Infrastructure, Preferred Networks

日本のベンチャー企業。Chainerフレームワークの公開などをはじめ、オープンソース公開には積極的な印象。

Preferred NetworksではIOTに特化した人工知能の研究開発を行う。