2016/06/30 SD Study
![AWS GPUインスタンスの使い方と注意点](https://cdn-ak-scissors.b.st-hatena.com/image/square/b5f915c801aaadd6dd15e9ccbb2cd866748b195b/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fe308278e165e4d04a7f1cefbce17171d%2Fslide_0.jpg%3F6527076)
これまでの各記事は以下から。 ニューラルネットワークの構成 多層ネットワーク ニューラルネットワークについて学んでみた。(その1) - いものやま。 活性化関数 ニューラルネットワークについて学んでみた。(その2) - いものやま。 ニューラルネットワークの学習 最急降下法、確率的勾配降下法 ニューラルネットワークについて学んでみた。(その3) - いものやま。 誤差逆伝播法 ニューラルネットワークについて学んでみた。(その4) - いものやま。 学習の工夫 ニューラルネットワークについて学んでみた。(その5) - いものやま。 勾配消失問題 誤差逆伝播法では、勾配が出力層のデルタ に関して線形計算になっている。 そのため、各層の重みが大きいと、デルタは急速に大きくなり、逆に、重みが小さいと、デルタは急速に小さくなる。 そのいずれの場合も学習が困難になってしまうので、層を深くするのが難しか
昨日は誤差逆伝播法について説明した。 今日は学習を行うときの工夫について。 過適合 ニューラルネットワークの学習で実現したいのは、まだ見ぬデータに対して正しい推定を行えるようにすること。 そのために、訓練データを使って学習をしている。 けれど、訓練データに適合しすぎて、まだ見ぬデータに対しては誤差が大きくなってしまうということが起こる。 これを、過適合や過学習という。 過適合が起きていないか確認するためには、データを訓練データとテストデータに分けて、学習は訓練データだけを使い、テストデータの誤差を確認すればいい。 訓練データに対する誤差を訓練誤差、テストデータに対する誤差をテスト誤差と呼ぶ。 そして、訓練誤差、テスト誤差がどのように変化しているかを表したグラフを、学習曲線という。 一般に、訓練誤差の学習曲線は、単調に減少していく。 一方、テスト誤差の学習曲線は、途中から乖離したり、場合によ
昨日は多層ネットワークの学習方法について説明した。 今日は多層ネットワークの学習で必要になる、勾配計算について。 勾配の計算 まず、入力 に対する出力 を得るために、次のように入力層から出力層に向かって、各層の出力 を順番に計算していくとする: について、 について、 について、 このとき、この入力に対する誤差の勾配 がどうなるのかを考える。 まず、出力層の重み について偏微分を考えると、 また、出力層のバイアス についての偏微分は、バイアスを入力が常に1である重みであるとみなすと、次のようになる: そして、中間層 の重み について偏微分を考えると、 ここで、 なので、 となることから、 となる。 なお、中間層のバイアス についての偏微分は、出力層のときと同様に考えて、次のようになる: ところで、途中何度も出てくる を デルタ で表すことにする、すなわち、 とすると、これまでの式は、次のよ
昨日は活性化関数について説明した。 今日は、ニューラルネットワークの学習に関して。 多層ネットワークの関数としての表現 以下では、ニューラルネットワークについて学んでみた。(その1) - いものやま。 で書いた、多層ネットワークについて考えていく。 多層ネットワークの出力 は、引数が入力 で、パラメータ をもった関数とみることが出来るので、次のように書くことが出来る。 すべてのパラメータをベクトル で表すことにすると、次のように書くことも出来る。 多層ネットワークでは、このパラメータ を学習していくことになる。 訓練データと誤差関数 入力 に対する望ましい出力を としたとき、このペア を訓練サンプルと呼ぶ。 また、その集合 を訓練データと呼ぶ。 多層ネットワークでは、入力 に対する出力 と、望ましい出力 との誤差が出来るだけ小さくなるように、パラメータ を更新していく。 誤差を考えるうえで
昨日は基本的なニューラルネットワークの構成について説明した。 今日は昨日説明しなかった活性化関数について説明する。 活性化関数 活性化関数はニューラルネットワークを非線形にするための関数。 一般的には単調増加する非線形な関数で、微分可能なもの(もしくは似た関数)が使われる。 昔よく使われていたのは、シグモイド関数と総称される関数。 ロジスティック関数や双曲線正接関数がある。 また、最近は正規化線形関数やシグモイド関数を近似した関数が使われたりもする。 ロジスティック関数 ロジスティック関数は、次のような関数: 定義域は、値域はになる。 見た目は以下のとおり: 双曲線正接関数 双曲線正接関数は、次のような関数: 定義域は、値域はになる。 見た目は以下のとおり: 正規化線形関数 正規化線形関数は、次のような関数: 定義域は、値域はになる。 見た目は以下のとおり: シグモイド関数を近似した関数
ゲームのAIを強くするために、強化学習の関数近似で、深層学習(Deep Learning)を使えるようになりたいと思ってる。 なので、深層学習について、以下の本で勉強中。 深層学習 (機械学習プロフェッショナルシリーズ) 作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る とりあえず、まずは基本となるニューラルネットワークについて学んでみた。 なお、強化学習については、以下の記事を参照。 ニューラルネットワークの構成 ユニットの出力 ニューラルネットワークでは、ユニット(あるいはニューロン)と呼ばれる部品を互いに接続することで、ネットワークを構成する。 各ユニットは、入力 (は入力の次元)を受け取り、出力 を返す。 各ユニットには、バイアス と、入力に対する重み 、そして活性化関数 があり、次の
胃腸炎になって、下痢と吐き気(と微熱)に苦しめられたのだけど、そういえば2017年のインターネットにはもうWELQというものがないんだった。 異変が起きたのは木曜の晩、会社で晩ごはんの弁当を食べた直後で、ふだんお腹を下しがちな自分にしても症状が悪めだったので不安だった。酔っ払ってもいない限りめったに使わないタクシーで帰宅して、とにかく最優先でベッドに入った。 ベッドの中で、何に当たったんだろうとか、明日の朝には治ってるんだろうかとか考えるうち、ふと「これってノロウイルスってやつでは?」という疑念が湧いてきた。ここのところノロウイルス感染症への注意をやたらと聞くし、なんかアイツ感染力高いらしいし。 熱があるせいで起きているらしき寒気と、頻繁にトイレに行くことを強いられていることと、そして金曜日にやらなければいけない仕事のことを思い出すことからどんどん不安になってくる。もしノロウイルスだったら
DeepLearningフレームワークchainerのニューラルネットワークプログラムの書き方を解説します! 2016/10/27 更新 (chainer version 1.17.0) 基本ライブラリのインポート import numpy as np import chainer import chainer.functions as F import chainer.links as L from chainer import training from chainer.training import extensions 【重要】データについて 配列は、numpyもしくはcupyの配列となっていること。 X(入力データ)のデータ型はfloat32にしておくこと。 分類の場合:y(正解・教師データ)のデータ型はint32。 回帰の場合:y(正解・教師データ)のデータ型はfloat32。
2016/09/04 環境:Ubuntu14.04(LTS), Chainer(v1.14.0), CUDA(7.5), python2.7 先人達の記事に従いchainerで画像分類を始める際、バージョンの違いによって変更が必要な点があったため記述する。 基本的な手順は、① d.hatena.ne.jp に従い、適宜② hi-king.hatenablog.com を参考にした。 ①の著者が作成したコードをgit cloneする。 $ cd ~/work $ git clone https://github.com/shi3z/chainer_imagenet_tools.git $ cd chainer_imagenet_tools 次にCaltech 101の画像データをダウンロードする。 101種類のカテゴリにつき、およそ300 x 200pxの画像データが40〜800枚収められて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く