放射線科Dr.のちいさなたまご

趣味でやっているお勉強の記録です。
今日もわくわく、明日は何をしようかな・・・

祝・5冊目が決定!

2020-06-27 08:00:16 | 趣味のprogramming

無事にUdemyのディープラーニング講座を1つ聞き終えたので、

さっそく次に気になる本に取り掛かりたいと思います。

Udemyの講座は知らないことが多くて、

楽しんで学ぶというより、にらめっこする時間の方が多いくらいだったので

今回はもっと何がやってるか分かってて楽しく、基本のPythonのコードも勉強できるような企画にします。

その名も・・・ジャンっ

なんともおもちゃっぽく、カラフルな積み木を組み立てていくような、

童心に帰れるんじゃないかと思わせる表紙に惹かれ、半年前に購入した本。

2019年8月に初版が出た本で、まだ値崩れしていないので・・・

勉強を終えたら2000円くらいでメルカリちゃんに出せるのでは説。

それで次の本を心置きなく買うというパーフェクト・サイクル

 

肝心の中身の方は、

  1. Pythonの導入
  2. Pythonを使ったデータ処理
  3. 教師あり〜回帰〜
  4. 教師あり〜分類〜
  5. 教師なし
  6. 評価指標
  7. ニューラルネットワーク
  8. その他の手法

と、ひととおり網羅してくれているようです。

実際のデータセットを使って分析を教えてくれているので、

自分でも普通にコードが読めて書けるように学んでいきます。

 

本の最初の方で1つ発見あり。

前回のUdemyの講座では、Deep Learningのモデルを作って学習させるのに

Anaconda Navigatorで環境構築をしていましたが、

GPUがない中でコードを走らせるのは動作が重くて大変

しかし、この本で紹介されるように

Google Colaboratoryを使うと、なんとGPUを使うことができる!!!

お金払ってどこかと契約して道具を買わないといけないと思っていたので

そんな選択肢早く教えてくれよ!って感じでした。

 

さっそく、Google Colaboratoryを気分良く使いながら、

データセットのimportから軽い分析までを一通りやってみてます。

第3章の回帰、1つ目のボストンの不動産価格まで終わりました〜〜

 

 

実は本を買った当初にも少し手を出して、動かしてみたことはあったコードでしたが、

今回、ようやくなんのことを言っているのか理解できるようになりました。

なんだか急激に、Pythonの視界が開けているような気がしています・・・!

 

この調子で勉強を続けるぞ。ルン♪♪

 


四日坊主完結編!

2020-06-26 00:03:57 | 趣味のprogramming

ようやく最終日を無事に終えることができました!

【4日で体験しよう!】 TensorFlow, Keras, Python 3 で学ぶディープラーニング体験講座

最終日は、画像スタイル変換。

任意の写真を葛飾北斎タッチにしたり、ムンクタッチにしたり・・・!

と変幻自在に操るためのコードです。

 

手順としては、

1。Githubに公開されているlengstrom/fast-style-transferからコードをダウンロード。

2。それに必要な環境構築をして

(Anaconda Navigatorのnew environment作成、terminal上に開いて必要なライブラリをインストール)

3。インプットとして入れたい自分の写真を準備。

4。プログラムを走らせて、自分の入れた写真を指定したタッチに変換したものがでてくる。

となります。

Terminal上で、"cd"でchange directoryするコマンドがあり、

自分の呼び出したいファイルがある場所を指定しますが、

これが混乱。自分のおいたファイルの場所が・・・あわあわ。適当ではコードは動きません!

 

そしてGPUではなく、CPUで細々と命令を実行してくれる私のMacbookちゃんは、

悲鳴を上げながら複雑なプログラムを実行、無事に写真を返してくれました!

 

もとの写真。

これが、北斎風のタッチで

さらにムンクの世界では

こんな画像になりました!

感動!!!動いた!!!動かせた!!!!

 

・・・Pythonのコードは開いても全く意味が分かりませんが。

とりあえず、自分の環境で自分でダウンロードして動かせたのは大きな一歩です!

 

この初のDeep Learningの経験を糧に、次の一歩を世界へ踏み出します。

 

上記の講座を作っている先生がまとめてくださっていたロードマップ。

そうそうこれが欲しかった!

 

宣伝されているのは重々承知ですが、

自分で10000個以上ある講座から適切なものを選ぶよりも早い!

まず、以下の入門者用のを進めたいと思います。

奇跡的に1番最初の「四日間で!」を選べた過去の自分の勘にも拍手!

 

ディープラーニングの基礎を学びたい方に (適宜私が編集してます)

(1)【4日で体験しよう!】 TensorFlow, Keras, Python 3 で学ぶディープラーニング体験講座

(2)Python 3・ PyTorch によるディープラーニング・AIアプリ開発入門

(PyTorchは現在急速に普及しているFacebook製機械学習ライブラリ。最新研究事例の実装が最も高速。)

(3)【NumPy・Python3で】ゼロから作るニューラルネットワーク

(KerasやPyTorchでブラックボックス化されている最適化計算を自作して仕組みを理解しよう)

(4)【今からでも間に合う!】AI開発・機械学習を理解するための数学講座

(ニューラルネットワーク計算に出てくる行列、微分、合成関数微分、確率などを復習)

 

画像分類以外のアルゴリズムについて学びたい方に

(1)ディープラーニングによる物体検出入門(YOLO v3にチャレンジ)

(2)【TensorFlow・Keras・Python3で学ぶ】時系列データ処理入門(RNN/LSTM, Word2Vec)

(3)【TensorFlow で作る】GANによる画像生成AI自作入門

(4)【 TensorFlow , Python3 , OpenAI Gymで学ぶ】強化学習入門

 

実践的なアプリ開発やプロダクト開発にチャレンジしたい方に

(1)TensorFlow.js入門 JavaScriptでディープラーニング・AI アプリ開発にチャレンジしよう!

(2)Raspberry Pi とTensorFlow ではじめるAI・IoTアプリ開発入門

(3)【画像判定AI自作にチャレンジ!】TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門

(4)Django・TensorFlow・転移学習による画像分類AIアプリ開発入門

 

このピンクの線を引いた講座はなんとすでに購入して持っている講座です。

まずはこの「基礎を学びたい方に」のコースを制覇して行きたいと思います!

何ができるようになるのか、楽しみが続きます。ルン♪


あと1坊主で制覇!

2020-06-24 23:19:43 | 趣味のprogramming

ついに、四日で体験!講座の3日目分まで終了しました!

【4日で体験!】 TensorFlow, Keras, Python 3 で学ぶディープラーニング体験講座
TensorFlow 2 対応! 4日間でディープラーニングを体験してみよう!Windows, MacでOK!

 

もともと4日のコースだったはずが、

前記事に書いたように、二日目が1日で終わらなかったことから停滞気味に。

 

三日坊主は結構いけることに定評のある私ですが・・・!

やはり期待を裏切らず、三日坊主でいったん終了していました。

 

しかし、三日坊主も1日休んでカウントを0にすれば、

また三日坊主を始められるという強みがあります。。。

 

今日は、三日坊主の2サイクル目に突入、見事やり切りました!

あと残すところ、最終日の4日目分のみです。

 

今日のテーマは、画像認識にチャレンジ!!

Tensorflowの公式ページにかつて記載されていた画像認識のコードを使用。

Tensorflow2がでた関係か、今はGithubにしか置いてないので、

Githubから".py"という拡張子を指定してダウンロードします。

 

それを実行するための仮想環境が、tensorflow2.0.0ではダメ。

そこで、tensorflow1.1.4の仮想環境をダウンロードするための仮想環境を

新たにAnaconda Navigatorで構築し、terminalを開いて、"conda install tensorflow1.1.4"と指示。

ようやくこの仮想環境上でダウンロードした画像認識.pyファイルを走らせます!

 

仮想環境上に.pyファイルをPythonで読み込ませるためには、

pythonを先頭につけ、スペース開け、そのファイル名を入力してEnter.

プログラムが読み込まれ、

最初にデフォルトでついているパンダの絵がパンダである確率がでてきます。

 

このパンダの代わりに、自分で調達した動物の絵や写真を差し替えることもできます。

使ったコードは、

python classify_image.py --image_file="pug.jpg"

これで、パグちゃんがどのくらいのパグっぽいのかが計算できました

 

ふぅ。

今日はこれでおしまい!

 


三日坊主は本当だった・・・!

2020-06-24 19:19:41 | 趣味の物理

三日坊主を証明しているような状況にいます!!

 

6月17日、今から1週間前に「思い立ったが吉日(前記事)」ということで

ブログをスタートするとともに、

趣味の勉強の充実を図ろうキャンペーンが始まりました!

 

1。物理のエッセンス 波動

2。線形代数と幾何

3。UdemyでCNN

4。物理のエッセンス 電磁気学

 

そしてどれも計画としては、

始めた日から毎日1時間以上取り組んで

さくっと1週間くらいで終えて

次の企画に進む!という予定でした。

 

が、しかし・・・

その教材を始めたときにイメージしていた

「ここがやりたい!!」っていうのをおよそ達成できたあたりから

教材を開くのが億劫になり疎遠になり・・・

他の「ここがやりたい!」がまだ残っているものに徐々にシフト。

山場をすぎると、あとは山をくだるだけなのに。。。

徐々にその熱が冷めていくのが3日〜4日程度。

つまり、完全な三日坊主です。

三日坊主の解決策は・・・

三日坊主を何度か繰り返すこと!!!

ということで、三日坊主を再びスタートして、

3+3=7になるように終わらせていきたいと思います。ルン♪♪

 

 


初CNN!畳み込みニューラルネットワークへ

2020-06-22 08:47:58 | 趣味のprogramming

さて

四日坊主を予定しているUdemyの機械学習のコースですが、

 

【4日で体験!】 TensorFlow, Keras, Python 3 で学ぶディープラーニング体験講座
TensorFlow 2 対応! 4日間でディープラーニングを体験してみよう!Windows, MacでOK!

 

なんと四日坊主予定が、五日坊主予定に変更になりました!

(※個人の変更で、正式にはまだ四日です)

 

二日目まで終えた前回記事から、1日経ち、見事三日目を制覇する予定でしたが、

二日目の終わりの方にオマケ的な立ち位置でついている「CNNを動かそう!」の企画が、

PCのスペック的に辛くて、辛くて、もう本当に辛くて・・・涙

涙ちょちょぎれすぎた結果、

そこで三日目を終了してしまいました。

 

二日目に行った、三層パーセプトロンモデルは、

「入力画像→入力層→中間層1→出力層→最終出力」と、三つの層からできています。

実は、入力層には、28x28の合計784pixelの値をなんと一列に直してインプット。

これが大問題の原因です!!

なぜなら二次元平面で少しだけズレた画像が、

一列に直されることで、全く異なる画像として入力層にインプットされてしまうからです。

 

この問題を見事解決したのが、

CNN(Convolutional Neural Network)こと、畳み込みニューラルネットワーク!

「真っ直ぐな線がある」や「真ん中に穴あり」などの

画像を視認する上で人間も利用している「特徴量」を抽出するフィルターをかけることで、

二次元平面画像から特徴量を取り出して使えるモデルなのです。

 

このCNNの凄さにより、

三層パーセプトロンモデルでは正解率が9割超えが限界だったFashionMNISTデータでも、

余裕で9割超を達成することができる!!・・・はずでした。

 

特徴量抽出のためのフィルター(keras.layers.Conv2Dの関数で指定)

1ヵ所目で3x3を32枚、2ヵ所目で5x5x32を64枚

くらい使ってやるべきだったのですが

 

計算を始めたところ、これが終わらない。

epoch数1にしても60000枚終えるのに5分くらいかかる。

xxxx/60000と徐々に増えていくのですが、

もう増え方が遅すぎて、1の位までよく見える始末。

もう辛いよ辛いよ・・・と声が聞こえそうな気がしたので、

辛くないように設定し直した結果・・・!

 

 

はい。なんと、フィルターが1ヵ所目4枚、2箇所目4枚!!

こんなフィルターで正解を出せるのかと思ったら、

これが案外accuracy80くらいまでは余裕で達成してました。

 

自分としては自分のPCでプログラムを無事に動かせて、

適宜調整もできたので大満足

(本来のaccuracyをあげる目的の調整とは違う意味ですが)

 

というわけで、

辛そうなPCを見ていたら、自分も猛烈に疲れを感じ、

CNNを3日目として、4日で体験!を、5日で体験!と変更、PCを閉じたのでした。

おしまい。