機械学習2019年7月振り返り
概要
これは個人用メモである。
何を7月に何をしたかのメモである。
そして随時更新していく。なぜなら月末にまとめてやると
何をしたのかわからなくなるからだ。
MNISTのエラー
事象
家のデスクトップPC windows10 32bit, memory 4GB,では
sklearnのMNISTが動かなかった。↓
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', version=1, cache=True)
MemoryErrorと言われた。
対策
・ぐぐる。→該当なし。
・GIthubで質問→返事なし
・別PCのwin10 64bitだと動く→やったね!
AWS導入
どうも64bitだと動きそうだが、64bitにするにはクリーンインストールが必要。それはしたくないので、AWSで環境を立てることにした。
準備
1.AWSに登録
2.セキュリティ等の初期設定
4.Jupyter Notebookの設定
ハマりポイント
- exitするとPATHが消える(デフォルト)そのため、直接bash_profileに追記
- jupyterコンフィグに記載するパスワードはsha1の部分から
- アクセスはhttps
- ログインできない→パスワード再設定し、openssl再実行
- ログインパスワードはハッシュ化される前のもの
- /etc/rc.local を編集して自動起動させる
5.root でのSSH許可。
パスワード設定
・sudo su -
・passwd root
・vi /etc/ssh/sshdc_config
PasswordAuthentication yes
PermitRootLogin yes#いらないかも
・ec2-userの公開鍵をそのままコピーします。#いらないかも
mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys_bak
cp -f /home/ec2-user/.ssh/authorized_keys /root/.ssh/authorized_keys
・service sshd restart
EC2 インスタンスに接続するためのパスワードログインを有効にする
EC2のAmazonLinuxでrootログイン可能にする(AMI設定まで) - Qiita
5.Gitインストール
・yum install git
・ git config --global user.name "名前"
・git config --global user.emai "メアド"
・git config --list
・ssh-keygen -t rsa -b 4096 -C "git@git-hub.com"
・/root/.ssh/id_rsa.pubができるのでGitHubにこの文字列を登録
6.Git復習
7.Gitでcloneして自分のリポジトリにUPする
cloneしたリポジトリを別リポジトリとしてリモートにpushする - Qiita
・git remote -v
・git remote set-url origin 自分のリポジトリURL
AWSは無料版はメモリが1GBだったので、MNISTが読み込めませんでした!!!!!!エラー文すら出ずに止まる!!!
AWSがだめならGoogle Colabnoratoryを使えばいいじゃない!
8. Google Colaboratory
初期設定等
https://www.codexa.net/how-to-use-google-colaboratory/
便利TIPS
https://karaage.hatenadiary.jp/entry/2018/12/17/073000
https://qiita.com/yoshiweb/items/3d6dbe9c3f7c81241cb9
javascript:location.href=location.href.replace('https://github.com', 'https://colab.research.google.com/github');
分かりづらかったので捕捉
・上記URLをブックマークする。適当なサイトをブックマークし、URLを書き換える
・さっきのブックマークをクリックするとGCで勝手に開かれる!!!
以上
Colaboratory上でGoogleDriveにアクセスする
google Colaboratoryでファイルを読み込む方法 - Qiita
そのほかは大体これを見ればわかる
https://colab.research.google.com/notebooks/io.ipynb#scrollTo=u22w3BFiOveA
振り返り(2019年6月)~Courcera Machine Learning 修了~
はじめに
アウトプットが苦手なせいか、学習の定着率がいまいち良くない。
また、勉強をしているうちにモチベーションが上がるときもあれば、
下がるときもある。下がっている場合に自分の軌跡を見返すことによって
再度モチベーションが上昇することを祈ってブログにアウトプットをする。
アウトプットが苦手すぎてツイッターですら勉強時間をつぶやくのを
しないときもあるが、とりあえずトライしてみよう。
ちなみに初めての投稿
行動しない自分
最近機械学習なるものが流行っているらしい。
ちょっと触ってみたいけど、よくわからない。
勉強するならどれから手を付ければいいのだろうと調べる。
調べて、Courseraのコースが良いと書いてあるのを発見。
けれど、忙しいことを理由になんだかんだ何もはじめない。
効率的な学習方法にこだわり、いつまでたっても始めない。
そんな自分に嫌気がさし、とりあえずえいや!と初めて見た。
大変だった
- 聞き取りやすい英語
- 評判が良い
- 分かりやすい講義
- 数学の知識不要
- 英語力不要
- プログラム経験不要
- 文系でもOK
と、数々のうたい文句を目にし、簡単そうだと思ったが、そんなことはなかった。
英語は何言っているかわからないし、
字幕の翻訳は正確性がなく、たまにずれていてわかりづらい。
プログラム課題は英語だし、QAももちろんすべて英語。
Google翻訳に突っ込んでも意味がわからない翻訳。
ベクトル、行列がしょっちゅう出てくるので、
きちんと理解しないと、プログラム課題が解けない。
プログラム課題の想定時間は3時間程度らしいが、実際にやると9時間程度かかる。
理解できないふがいなさ、迫る期限、目の前に広がる異界の言葉。
とにかくつらかった。特に英語。TOEIC500点程度じゃ食らいついていくのでやっとだった。
勉強内容
詳細は以下とほとんど同じ。
各章ごとに学んだことを記載しようと思ったが、アウトプットに時間を割くよりもまだまだインプットしたい内容が多いため、割愛。
とてもわかりやすく簡潔にまとめられていて、移動中の復習で大変お世話になった。
数学が苦手な人でも大丈夫かーとこの人のQiitaが背中を押してくれる最後の一押しになったが、この人はドイツ留学までしているハイスペック人材だった。
他の投稿内容見ても明らかに自分よりハイスペックであり、若干だまされたと思った。
Week-1: 機械学習とは?単回帰分析、最急降下法、目的関数
Week-2: 重回帰分析、スケーリング、正規方程式
Week-3: ロジスティック回帰、正則化
Week-4: ニューラルネットワーク入門
Week-5: ニューラルネットワークとバックプロパゲーション
Week-6: 機械学習のモデル評価(交差検定、Bias & Variance、適合率 & 再現率)
Week-7: サポートベクターマシーン (SVM)、カーネル (Kernel)
Week-8: 教師なし学習 (K-Means)、主成分分析 (PCA)
Week-9: 異常検知 (Abnomaly Detection)、レコメンダシステム (Recommender System)
Week-10: 大規模機械学習
Week-11: 写真の光学文字認識
学習時間
各章ごとの学習時間
week1:記録なし
week2:15h
week3:17h
week4:8h
week5:9h
week6:9h
week7:9h
week8:7h
week9:10h
week10:2h
week11:2h
復習:26h
各月ごとの隔週時間
3月:10h(3/25から開始)
4月:38h
5月:39h
※復習時間は除く。
合計学習時間:113h
痛感
今までどれだけ勉強していなかったか痛感した。
仕事が終わってから1時間だけでいいから勉強する。
これがどれほど大変な事か理解をしていなかった。
言うならば、今まで数年かけてきたダラダラすると言う習慣を
変える必要がある。ダイエット、早寝早起き、筋トレなど、新しい習慣を
身につけるのはとても大変だ。多くの人が挫折を経験したことがあると思う。
日によっては22時に仕事が終わり、帰ってきたら23時。
疲れ果てた体で1時間勉強する。
定時で終わって帰ってきても、19時。寝るまでには5時間程度はあるが、
まったりネットサーフィンしていたらあっという間に日付が変わってしまう。
言い訳ならたくさんできる。楽な方へ行くのは簡単だ。
でもそこでちょっとだけやる気を出して、1時間勉強する。
休みの日に10時間程度勉強しようと意気込むが、せいぜい4,5時間程度しか
集中できない。
言うは易く、行うのは難しい。言葉では言い表せられないほど
日々コツコツと学習する大変さを思い知った。
毎日たった1時間程度だが、積み重なればCourseraのような1つのコースを
修了し、自分の力とすることが出来る。この差は大きい。
今まで自分がいかに努力をせず、勉強している人たちと差が開いているかを
実感した。同時にコツコツ出来る人は本当に偉大だなぁと尊敬の念を抱いた(Twitterではたくさん見かける)。
頭では分かっていたつもりだった。
月に3冊本を読めばそれだけで上位20%に入れるそうだ。
ちなみに半分の人は月に1冊も本を読んでいない。
言い換えれば、努力している人としていない人の差が激しい。
程度の低い望みかもしれないが、落ちぶれたいとは思わない。
もっと頑張らねば。
勉強履歴と今後の予定
2019年3月
- Coursera Machine Learning開始
2019年4月
- Coursera Machine Learning 継続
2019年5月
- Coursera Machine Learning 終了
2019年6月
- Coursera Machine Learning 復習
- Kaggle タイタニック submit
2019年7月(現在)
- scikit-learnとTensorFlowによる実践機械学習 写経&理解
なんだかんだで書くのに2時間くらいかかった。
アウトプットって大変。
推敲はしてない駄文をネット上に公開することに幾ばくかの恥を感じるが、
たぶんほとんど閲覧されることはないと高をくくっている。