edo1z blog

プログラミングなどに関するブログです

機械学習

TensorFlow - 隠れ層があるニューラルネットをつくる

入力層、出力層の間に隠れそうをつくります。隠れそうが何層あっても対応できるプログラムにしたいと思ったのですが、TensorFlowは事前にモデルをつくるので、forとか使えないかもと思って良くわからなかったし、そもそも単純に層の数が多ければいいってもん…

TensorFlow - パラメータを保存して使う

学習したパラメータを保存するのは、下記のようにやります。 Saverを呼び出して、 saver = tf.train.Saver() saveメソッドで保存します。 saver.save(sess, '.\ckpt\model.ckpt') Windowsだけかもしれませんが、save()の第二引数に保存するファイル名を入れ…

TensorFlowのMNISTはどうなってるのか?

TensorFlowのチュートリアルのMNISTはどうなってるのか? ソースコードはこれです。 とりあえずデフォルトだと、[0,0,0,128,255...]とかではなく、[0.,0.,0.9..]みたいになっていて、これはdtypeをtf.float32にするとわざわざそうしてくれるらしい。もう一つ…

TensorFlow - MNISTで機械学習してみる(入力層・出力層のみ)

MNISTを取得する TensorFlowのチュートリアル用にMNISTが簡単に取り込めるようになっているらしい。 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.examples.tutorials.mnist import input_data mnist = inp…

TensorFlowのWindows版をインストールする

TensorFlowのWindows版がでてた 「Windows10上のTensorFlowでGPUを利用しようとしてダメだった→できるようになったみたいです!」なんと、Windows版でGPU利用も可能なものが出てるらしい。「Google、オープンソースの機械学習ライブラリ「TensorFlow」のWind…

Python - MNISTを使う

機械学習で使えるサンプル画像の有名なのがMNISTだそうです。0-9までの手書き文字画像と、正解ラベルデータが、トレーニング用とテスト用で分けられています。 http://yann.lecun.com/exdb/mnist/ バイナリデータになっていて、画像等は全部データとしてつな…

Python - 勾配法

勾配は、すべての変数に対する偏微分をベクトルにしたものです。勾配法は、勾配を使って関数が最小になるパラメタを探す方法のことです。偏微分はある点における、各パラメタに対する微分ですので、傾きです。傾きが分かるとパラメタをどう動かすとマイナス…

python - 損失関数

ディープラーニングで使う損失関数の、二乗和誤差と交差エントロピー誤差。 二乗和誤差 二乗和誤差は、差の二乗を全部足して2で割る。 def nijowagosa(y, t): return 0.5 * np.sum((y - t)**2) y = np.array([0.2, 0.03, 0.8]) t = np.array([0, 0, 1]) prin…

Python - 偏微分・勾配

偏微分 偏微分は、変数が2つ以上あるときに1つ以外を固定にして、固定じゃない1つに対して微分をすることだそうです。Pythonでやると簡単にできます。 下記の式で、x0が3、x1が4のときの偏微分 [mathjax] $$f(x_0, x_1)=x_02+x_12$$ コード import numpy as …

ディープラーニングのサンプルコード

メモ。ゼロから作るDeep Learningの本用のサンプルコードは、Githubで公開されてます。これは、Githubの公開リポジトリなのでブログに書いても大丈夫なやつなはずなのでメモ。 oreilly-japan/deep-learning-from-scratch

ソフトマックス関数

合計が1になるように、うまく数字を調整してくれる関数らしい。確率を確認するのに便利。 [mathjax] $$y_k = \frac{\exp(a_k)}{\displaystyle \sum_{i=1}^n \exp(a_i)}$$ aがn個あるときの、k番目のyを取得する。分母は全てのaの指数関数の和。分子はk番目…

シグモイド関数

ディープラーニングでシグモイド関数というのを使いまっす。シグモイド関数は、何か入力されたら0~1の数値を返します。入力された数値が0未満だったら0を返して、そうでなければ1を返すような関数をステップ関数といいまして、これよりも緩やかに0~…

Python x TensorFLow - 最小二乗法

1次関数から試してみます。最小二乗法は、誤差を2乗した合計が小さくなるようにすることで、最もらしい関数を発見する方法です。1次関数でデータを10個つくって、作り出した関数を知らない前提で、機械に関数を発見してもらいます。 1次関数でやってみる 1次…

TensorFlowのDockerのJupyterが動かない

TensorFlowのDockerは下記です。 $ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow dockerコンテナを実行したら、Jupyterが動いているのですが、Dockerをローカルブラウザで見る方法がわからないです。コンテナを実行したら下記のようなメッセー…

Windows10にDockerを使ってTensorFlowをインストールする

Windows10にTensorFlowをインストールします。Dockerを使うと簡単にインストールできます。GPUなしバージョンをインストールします。Dockerはインストールされているものとします。ちなみに、Windows環境だとTensorFlowのGPU版を使うことは難しいようです。…

TensorFlowの勉強によさそうな記事

TensorFlowのよさそうな解説記事 ここをメンテしていきます。 中学生にも分かるTensorFlow入門 その1 テンソルとはなにか TensorFlowとは TensorFlowとは? データフローグラフを構築・実行してみよう Googleの公開した人工知能ライブラリTensorFlowを触っ…

Google Prediction APIを使って機械学習してみる

機械学習とは? 機械学習とは、下記です。 参考:機械学習とは | SAS 機械学習とは、データから反復的に学習し、そこに潜むパターンを見つけ出すことです。 そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することが…

機械学習で役に立ちそうな情報

機械学習関連で役に立ちそうな情報をのせます。 機械学習の仕組みの勉強 機械学習 はじめよう SAS: 機械学習 Machine Learning 機械学習サービス CLOUD MACHINE LEARNING Google Prediction API TensorFlow 【人工知能】機械学習のクラウドサービス 21選 機…

協調フィルタリング(ピアソン相関)

from operator import itemgetter from math import sqrt data = { 'A': {'あ': 10, 'い': 5, 'う': 3, 'え': 4, 'お': 9, 'か': 6}, 'B': {'あ': 3, 'い': 3, 'う': 3, 'え': 4, 'お': 3, 'か': 4}, 'C': {'あ': 2, 'い': 10, 'う': 4, 'え': 2, 'お': 4}, …

協調フィルタリング(ユークリッド距離)

これを読んでます。集合知プログラミング 参考:協調フィルタリングでアイテムの推薦をする 協調フィルタリングとは? 参考:協調フィルタリング 協調フィルタリング(きょうちょうフィルタリング、Collaborative Filtering、CF)は、多くのユーザの嗜好情報…

MacでPythonを使って機械学習をやってみる

参考:MacでPythonの機械学習環境構築(2015年2月版) brewが動かない。 参考:Yosemiteでbrewが壊れた $ vim /usr/local/Library/brew.rb 1行目の1.8をcurrentに変更する。 #!/System/Library/Frameworks/Ruby.framework/Versions/current/usr/bin/ruby -W0 …