機械学習

Kerasのコーディングではまったこと集

Kerasのsessionはきちんとclearさせてないとエラーがでます Tensoflow + Keras のコードの実行で、 TypeError: 'NoneType' object is not callableというエラーがでて原因がわからず少しはまりました。 どうやら、kerasのバックエンドのTensorFlowのsession…

TensorflowのTutorial "Deep MNIST for Experts"を試した時のメモ

wshinya.hatenablog.com前回は"MNIST For ML Beginners"の解説を読みプログラムを実行してみました。 今回は、以下のリンクから"Deep MNIST for Experts"の解説を読みプログラムを実行してみます。 Deep MNIST for Experts | TensorFlow前回のBeginners編と…

TensorflowのTutorial "MNIST For ML Beginners"を試した時のメモ

Tensorflowを勉強するにはTensorflowのTutorialを自分で入力して実行しながら理解するのが一番手っ取り早いです。 特に初めてTensorflowを動かすときには、以下のリンク先のMNIST for ML BeginnersというTutorialがおすすめです。 MNIST For ML Beginners | …

深層学習でよく使われる学習用データセットまとめ

追記: せっかくまとめましたが、arXivTimesに素晴らしいまとめがありますのでそれで十分ですね。 github.com MNIST: 手書き文字認識学習用データ 28pixel x 28pixel x 1channel 60000枚:training用 10000枚:test用 クラス: 10個の数字機械学習におけるHello…

Kerasを使っていてPILが必要になったときの対処法

conda install PILとやったらpythonのversionが3.5だと怒られてしまいます。 PILの代わりに、 conda install Pillowとすればいいようです。以下のサイトを参考にしました。 qiita.comPillowについては以下を参照 qiita.com

Tensorflow GPU版 + Keras + OpenCV ver3.0の環境構築

最近TF1.7もリリースされ、そろそろCUDA9.0にアップデートしないといけないと思っていたので、復習も兼ねてTensorflowの環境構築方法をまとめました。(2018年4月現在の情報)OS: Windows10Pro, 64bit 1) Tensorflow GPU版のためのCUDA環境の構築まずは、NVI…

機械学習基礎の基礎: 過学習を防ぐ正則化

前回のブログでは2次元平面上の8つの点を10次関数でfittingしました。 すると、fittingする関数の自由度が高いために、8つの点すべてを通るようにうまくパラメータを調節できてしまい、学習データに対しては100%近い正解率がでるのに、新たなデータ…

機械学習基礎の基礎: 過学習

今回は過学習についてみて見ます。 まずは訓練データを作成します。 訓練データは3次関数にノイズを加えた8つの点(x, y)構成することとします。 プログラムの初めに8点生成して、それらの点を10次関数でfittingすることにします。 データの個数がfitti…

機械学習基礎の基礎: パーセプトロンで線形分離を実装してみる

今度は、パーセプトロンを使って線形分離をしてみます。 適当に線形分離できそうなデータを以下のように作ってみました。 データは2次元平面上の点の座標(x, y)とそれぞれの正解ラベル1 or -1をつけています。 10, 20, 1 11, 30, 1 15, 30, 1 17, 35, 1 5,…

機械学習基礎の基礎: 確率的勾配降下法の実装

前回のデータとコードを改造してStochastic gradient descent method(SGD)を実装してみました。 と言っても、大した改造ではなくパラメータの更新を1つの訓練サンプルごとに行うようにしただけです。 np.random.permutation(X.shape[0]) で、いったんランダ…

機械学習基礎の基礎: 非線形fitting

前回の線形fittingでは、身長が低いところでfittingのずれが大きくなっていましたので、今回は2次関数でfittingすることにします。 同時に、入力データやパラメータをmatrixで扱うことでコードをシンプルにしています。 前回との差分は、fitting関数を y = …

機械学習基礎の基礎: データ読み込みから線形fittingまで

機械学習の基本である線形回帰のコードを書いてみます。流れの説明: 1) データファイルの読み込み: データファイルはtextデータで x0, y0 x1, y1 ... のように格納しています。今回以下のような ダミーの(身長, 体重)データを使用しました. 85, 16.8 90.5,…

東大の松尾研究室, Deep Learning基礎講座やってみた

東大の松尾研究室がDeep Learning基礎講座を開設しているらしいです. 以下のブログに触発されて私も早速ためしてみました. karaage.hatenadiary.jpすると確かに上のブログに書いてあるようにlecture_chap05_exercise_master.ipynbのTensorBoardの可視化のと…

Kerasでmnist.load_data()したときにデフォルトでデータがセーブされる場所

WindowsでKerasのサンプルを実行したときの話です。 例えばmnist_cnn.pyを実行するとネットワークからmnistデータセットをはじめにロードしますが、そのファイルがおいてある場所は、 C:\Users\username\.keras\datasets になります.以下のソースコードを読…

Kerasのバックエンドを変更する方法

Anacondaでpythonとtensorflow及びKerasをインストールしてpythonからimprot kerasを実行するとバックエンドがなぜかtheanoになってしまう問題の解決方法です。 解決方法:(環境変数を書き換える) C:\Users\someone\Anaconda3\envs\someEnv\etc\conda\activa…

機械学習の論文を効率よく読む方法

機械学習に関しては日々多くの論文が投稿されていて、すべてに目を通すことは時間的に難しいです。以下のサイトでは、投稿される機械学習関連の論文をリスト化し簡単なサマリーが付けられているので このサイトを見れば世の中のトレンドを知ることができます…

「これならわかる深層学習 入門」 瀧 雅人著 の正誤表

機械学習スタートアップシリーズ これならわかる深層学習入門 (KS情報科学専門書)作者: 瀧雅人出版社/メーカー: 講談社発売日: 2017/10/21メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る瀧 雅人さんの「これならわかる深層学習 入門」 …

「機械学習入門」 大関 真之著 を読みました

機械学習入門 ボルツマン機械学習から深層学習まで作者: 大関真之出版社/メーカー: オーム社発売日: 2016/12/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る表紙が機械学習の本の中ではトップクラスに機械学習らしくなくいい意味で手に取り…

pythonを使った深層学習用ライブラリkerasのインストール方法

kerasとは? kerasはTensorFlowやTheanoをバックエンドとして実行するライブラリです。 深層学習のネットワークのアーキテクチャの構築を直感的に記述することが可能なライブラリです。 要は、深層学習をお手軽に書くことができますよ、ということですね。 …

Windows10でDraknetをビルドしてYOLOを動かして画像認識を試してみました

最近以下のような画像を見かけることが多くないですか? 自分のマシンでも動かしたくなりDarknetをダウンロードしてmakeして,手持ちの写真でやってみましたという話です. Darknet, YOLOのオリジナルサイトは以下になります. pjreddie.com基本的には以下のサ…

TensorFlowのMNIST For ML Beginnersを試してみる

前回、TensorFlow始めましたということで TensorFlowのドキュメントを読みながら TFの実行環境整備をしました. 今回はその続きで, MNIST For ML Beginnersを 読みながら実際に実行してみたいと思います. MNISTとは MNISTとはプログラミングにおけるHello wor…

TensorFlow始めました [環境整備編]

今年になってTensorFlow1.0がリリースされてWindows上でも比較的安定して動くようですので、 Windows10 64bitが動いているデスクトップマシンとノートPCでTensorFlow1.0の実行環境を整備してみました. 情報はすべて2017/4/15のものです. まずはTensorFlowの…

Courseraでヒントン先生の"Neural Networks for Machine Learning" 2週目

1週目はイントロということで、課題も無難にこなし2週目も受講し終わりました。2週目はざっと以下のような内容でした。ネットワークの種類の説明 feed forward network recurrent network symmetrically connected networks 以上3つの種類のネットワーク…

教師あり学習と教師なし学習のイメージ

教師というからには、学校をイメージしてみましょう。 教師あり学習と教師なし学習で、生徒を小集団に分類することを考えます。 教師あり学習 全校生徒を運動場に集めて、一人一人に教師があなたは1組、あなたは2組という風に伝えます。 その後任意の生徒…

Courseraでヒントン先生の"Neural Networks for Machine Learning"を受講しはじめました

今日から始まったようですので、早速1週目を聞きました。 最初の週なので、機械学習やディープラーニングの概要やOctaveのインストール作業など軽めの内容でした。 英語が私には聞き取りにくくスライドを読みながら理解する状態です。 Ng先生のMachine lear…

「人工知能は人間を超えるか ディープラーニングの先にあるもの」を読みました

人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書)作者: 松尾豊出版社/メーカー: KADOKAWA/中経出版発売日: 2015/03/11メディア: 単行本この商品を含むブログ (22件) を見るマスコミでも積極的に人工知能について解説しておられる…

Machine learingのオンライン講義

機械学習系で有名なオンライン講義には、StanfordのNgさんの講義があります。 Andrew Y. Ngさんの講義にはいくつかのバージョンがあります。1) CS229 2) CS229A 3) Coursera Ml classこの3種類の違いについてまとめました。CS229とCS229Aの違いですが、Ngさ…

機械学習を勉強してみる:「ITエンジニアのための機械学習理論入門」: 2章を読んでみた。最小二乗法は理系出身者にはなつかしい。

2章のテーマは最小二乗法です。 最小二乗法と聞いて理系出身者なら実験データのフィッテングを思い出すのではないでしょうか。 実験データを直線フィッテングすることで、ある物理量の推定を行うなど学生実験でやったことあるという方もおられると思います…

機械学習を勉強してみる:「ITエンジニアのための機械学習理論入門」: 1章を読んでみた結果データサイエンスが何でサイエンスというかが分かった

1章は導入なのでデータサイエンスと機械学習についての関係やそれぞれがどういう意味を持っているかを解説しています。 そもそも、何でデータサイエンスとかデータサイエンティストとか"サイエンス"という言葉を使うのかについて、以前から謎でした。 単に…

機械学習を勉強してみる:「ITエンジニアのための機械学習理論入門」のサンプルコードを実行してみる

先日紹介した、「ITエンジニアのための機械学習理論入門」を使って機械学習を手を動かして勉強しています。 まずは、この本に載っているサンプルの実行を行ってみます。 出版社のページに、サンプルのダウンロードサイトへのリンクがありますので、そこから…