チャイムノート

【機械学習】初心者でもできる画像生成〜予備知識編〜

f:id:chime-n:20190419233714p:plain
 

こんにちは!

機械学習をするのは大変だと思ってる人は多いと思います.

でも,実際はプログラミングできない初心者でも機械学習をすることはできます.

先人達がプログラムを公開してくれているので,本当に誰でも挑戦できます.

ということで,機械学習初心者の私が画像生成にチャレンジしていきます.

今回はプログラミングなし,ノートPCで,記事に沿ってやれば機械学習で画像生成できるように書きます.

 

やることは学習データになる画像を集めて,先人の作った機械学習用のプログラムを使うだけ!簡単!

この記事は画像生成に興味をもった初心者がただやってみるだけなので,機械学習のプロ達には向きません. 

・プログラミングとか知らん

・式とか見たくない

・性能いいPC(GPU)持ってないよ

・とりあえず機械学習をしてみたい

・画像生成とか面白そう

みたいな初心者に向けた記事になっています.

一緒にすごい技術を体験しましょう!

 

   **追記**

  データセットの数の少なさが原因であんまり精度はよくないので注意

 

また,3部構成を想定してます.

今回は第一部として画像生成に関する予備知識編です.

式を一切使わずにイラストだけで機械学習の概念を説明します

 

 

そもそも機械学習ってなに? 

まず,機械学習について「犬の判断」を例にして簡単に学びます.

昔のPCがどうやって犬を判断していたかというとこんな感じ. 

f:id:chime-n:20190419233747p:plain



人間がPCに"こんな特徴あるから判断してね!”と設定していたわけです.

機械学習がなかったときは,人間が特徴的なパラメータの抽出(足の本数)と閾値(4本)を決めていました.

 

対して,現在はこんな感じになりました.

f:id:chime-n:20190419233808p:plain


 

人間はたくさん犬を見せるだけでPCが勝手に特徴をみつけてくれます.

このたくさんの犬を見て特徴をみつけていく(=勉強している)ことが機械学習になります.

何がすごいのかというと,人間っぽいことをPCができること,人間が見つけられなかった特徴を抽出できること等が挙げられます.

昔より精度も高いし,人間の指示も簡単だし,機械学習はすごい!

 

画像生成はどーやってやってるの?

続いて,機械学習による画像生成についてです.

今回はDCGANと呼ばれる手法をやります.

これがどんなことをしているかを「偽物の絵画」を例にして学びます.

 

どうぶつ達がいる森(みんな知ってるよね?)に迷い込んだら,たぬきちの店とつねきちの店で買い物しますよね?

つねきちの店では絵画を買うことができ,たぬきちの店では絵画を売ることができます.

しかし,つねきちの店では偽物の絵画が本物のように売られていることがあります.

  f:id:chime-n:20190419233833p:plain

つねきちから騙されて買った偽物絵画はたぬきちの店では偽物と見抜かれて売ることができません.

  f:id:chime-n:20190419233902p:plain

ここで,この話を聞いたつねきちは当然,偽物をより本物らしく作ろうとします.  

  f:id:chime-n:20190419234004p:plain

対して,たぬきちも対策をします.

  f:id:chime-n:20190419234053p:plain

このサイクルが繰り返されることでお互いに精度が上がっていきます.

  f:id:chime-n:20190419234129p:plain

最終的にはつねきちが本物レベルの絵画を作れるようになって,互いに限界を迎えます.

 

これがGANと呼ばれる機械学習アルゴリズムになります.

この記事でやる画像生成は,「最後につねきちがつくった偽物絵画」が「生成したい画像」になります.

 

次回予告〜学習データを集める〜 

ここまで,予備知識として機械学習について簡単に学びました.

次回は,学習に使うデータ集めをしていきます.