読者です 読者をやめる 読者になる 読者になる

マンモス武勇伝~暗黒魔界編~

マンモスほっちぃ☆さんの快進撃が今...始まる...!!

考えること

今回は厨二の数え役満ですがどうか目を瞑って僕の思いを汲んで下さい。


僕は同じ人間を上か下かに分類するとき、その人間の思考の質で判断します。

その人間の思考が如何程停止しているかによって、質は変化します。

例えば、テレビを見ている時、自慰行為に耽っている時。思考は停止しています。

時には批評の目を向けながらテレビを見ることが有るかもしれませんが、例えば、ニュースなど、ここでは基本的にはバラエティ番組などを見ることを指しています。

テレビを見ることや自慰行為によって人間は簡単に快楽を得ることが出来ます。

特にテレビでは、思考の質が悪い人間が多くの人間に晒され、そのテレビの人間の社会的地位が高く見えてしまうことにより、思考の質の低下を是としてしまう可能性があるので注意しましょう。

そうゆう思考停止時間が多い人間に頭が悪い傾向、つまり思考の質が悪いと思います。

快楽は本来、知的活動のみから得られるべきだからです。

思考から得られる快楽を蔑ろにする事で、我々の思考の質が落ちてしまうのです。

思考の質が低下している人間達は、現状に満足し、流されるままの無為な生活を送ります。他の命を費やしながら。


僕は個性、もあると思います。思考の質が悪い人間達にも。

即ち、生まれた時から思考の質が水準以下と定められている人間達ですね。

この手の人間は基本的に勉強が出来ません。思考から来る快楽を得る事が普通の人間より苦手なのです。よって、思考以外の方法で快楽を得ようとします。

生きる価値がないと思いませんか?

訂正します、生きる価値じゃなくて、所謂人権を与える価値が無いです。彼らも労働力として役に立つでしょうから。僕は力仕事なんてまっぴらですからね。代わりはお得意の繁殖力で幾らでも生まれて来るので、完全に奴隷として労働力にしたら良いと思います。でもそれは機械で代用出来るので、医学の進歩の礎になるべきか。

そんな社会にしたいですね。

生まれた時から大まかに階級を定め、その後の思考の育み度合いによって最終的に地位を決める。こんな感じで。

ただ、階級を定める方法が脳科学の進歩を待つ他無いのと、政治的面からは自分の子を危険に晒す事を恐れる阿保の所為でこの改革は無理です。

僕が非科学的な力を得れば別ですけど。。


少しでも無能の社会的地位を失墜させる為に共に頑張りましょう!



私の今思ってることと英語学習の近況

夏休みの僕の課題について, 適当にそれっぽいワードでググったらこのブログが上に来て, 教授に特定されることを危惧した僕は, 最近非公開にしていました.(すまんこ)

 

さて, ここで英語の能力の中間発表です.

TOEIC 785点 (9月6日受験), R-400 L-385

TOEFL 70点 (10月16日受験), R-20 L-18 S-15 W-17

ですね. 夏休み中にTOEIC800が目標でしたが届かなかったです.

来年の夏前迄には確実にTOEFL 100~を取っていないと(欲を言えば春で取りたいお)

専門科目の勉強が詰むので大学院留学できなくなります.

 

まだ専門決まってないですが, 数値解析(微分方程式)を専門にすればフィンランドの大学院は紹介してもらえる手筈になっています.

金融業界を狙って応用確率論や統計学を専攻にするのもありです.

 

考え中...

 

将来日本で働くなら, 英語ができるうちに英検1級でも取っておこうかしら. と思うのですが, 海外でバリバリってのも凄く憧れますよね.

 

僕は, ハンディキャップを背負って生きたいなって思っています. 

たまに障害者に憧れたりするほどに...

 

それゆえ, 非母国語の英語を使いながら暮らす, 仕事をしていくのは僕的には選択肢の中の一つです.

 

でも, 大学院留学の奨学金の申し込み条件に, 将来, 日本で働く者や, 日本の成長に貢献する者, などがあって, うっざー...て思ってます...

 

そうゆうのは海外行ってから考えたいなあー.

 

というわけで英語がんばろう.

 

ブログを書くって自分の考えがまとまる感じして嵌りそうですね...

 

ニューラルネットワークで関数近似その2.

今回から私の夏のレポート課題編に入ります.

課題内容は, ニューラルネットワークを用いて方程式の解の公式の関数を近似することです.

 

そのお試し編として, 前回は正弦曲線を近似したのです.

 

今回も関数近似ですが, 近似する関数はまずは!1変数の時の解の公式.

 

つまり, 方程式 ax-b=0 の解の公式は x=b/a ですよね.

 

それを近似します.

 

話は2次3次と進めたいのですが, とりあえず1次!

 

ニューラルネットの入力は方程式の係数に当たる a と -b ですが, 今回は a で割っておいて, -b/a を入力としています.

 

入力も出力も1次元なので見やすくなりますねー.

 

これが近似したものです...( 赤: y=-x 青: 近似した関数)

 

 

f:id:chbakensousasi:20160804004927g:plain

 

 

前回とほぼ同じだから特に言うことはないかな, と思っていましたが(今回は活性化関数をハイパボリックタンジェントにしてます)

Sin[x]を近似する時よりもこちらの方が難しいです!!!

 

重みの初期値をランダムで生成していますが, 初期値によっては全く収束しない, もしくは入力のxの平均値, 今回はxは[-0.5,0.5]の範囲で生成しているので平均値0に収束してしまうという状況に陥ることがありました.

 

訓練データを多くすると平均値に収束することが非常に多くなりますね.

まあそれも最適解の一つですからしょうがないです.

 

で, 対処法としては, 遺伝的アルゴリズムのような手法を用いることです.

 

つまり, 初期値をランダムで発生させた組をある程度生成して, それらについて簡単に誤差逆伝播法を用いて関数近似をします.

センスのある初期値だったらそいつをサルベージしてそいつを初期値として, 

ニューラルネットワークの学習を進めていきました!

 

二次元の方程式が私を呼んでる...

 

 

期末テストは残すところあと1つです!

論理学なのでレポート優先でいきます笑

 

 

(最近英語やってねぇ)

ちなみに7日から語学留学スタートです.

1ヶ月間寮生活ですが, 寮にディープラーニングの天才がいてくれると嬉しいです...

ニューラルネットワークでSin[x]を近似してみた.

環境はMathematica で実装しました.

(Mathematica愛してる)

 

参考図書:

熊沢逸夫 著 学習とニューラルネットワーク

岡谷貴之 著 深層学習

 

参考サイト:

http://nnadl-ja.github.io/nnadl_site_ja/index.html 

Michael Nielsen 著 ニューラルネットワークと深層学習

 

と言う本の翻訳した奴??的なサイトです.

(参考図書と参考サイト似たようなタイトルで笑う)

 

これらは本当にオススメです!!

 

近似の流れをさっと説明すると,

入力層にxを入れ(ランダムで[0,Pi/2]で発生)目標出力としてSin[x]を与えます.

隠れ層は5つの素子から構成されており, 層が3つで素子が1-5-1のニューラルネットワークで考えました.

素子と素子は重み付きで隣接しており(有向グラフ) 入力に対してSin[x]を作り出せるような,ある重みを求めることがこの問題の目標です.

ちなみにニューラルネットワークで任意の関数を近似できることは理論的にわかっています.

一つの層の全てのF(素子の値)*重みの和が次の層の隣接している素子の入力となっています.

ここでFは活性化関数と呼ばれる関数で通常, sigmoid関数やhyperbolic tangent関数などがよく用いられます.

今回はsigmoid関数を使いました.

このように次の層の素子の値を求めることを繰り返し, 出力までこぎつけたら, 出力層の素子の値に対して別の活性化関数を用いるか否かの選択をします.

私はそのままsigmoid関数を使いましたが, sigmoid関数は値域が(0,1)なので目標出力がその値域を超える場合には恒等写像を使うなどしたらよいでしょう.

 

そして, 勾配法で目的の出力と実際の出力の二乗誤差の極小値を探していきます.

 

誤差逆伝播法と呼ばれるアルゴリズムで逆から(出力層から)重みの修正率を求めます.

また, 学習係数と呼ばれる重み修正の際に掛ける係数は0.1としました.

 

こうして重みを更新するのですが前回の記事で書いた致命的欠陥とは, この誤差逆電波のアルゴリズムにおける偏微分の計算において, 重みの値の絶対値が十分に小さくなるような更新をする場合(活性化関数によるけど)に正負の表現に関して注意が必要なことです.

それを防ぐコードを書き書きしたら直りました.

これに気づくまでの日々を思い出します...

 

てか, 本(ネット)に書いてある通りに誤差逆伝播法を実装した奴これに直面するはずなのに何で誰もそのことに触れていないの??www

訓練データで近似できて満足しちゃったのかな...?テストデータでちゃんと近似できてるか確かめよう!!

 

何の話してたか忘れたので, とりあえず結果貼っときます.

ノートpcでやってるし(言い訳)メモリすくねーし(言い訳)反復回数は少なめです.

GPUを使った並列計算を勉強しよう!!(しなきゃいけないのは解ってる...)

 

 

f:id:chbakensousasi:20160723030027j:plain

 

訓練データを与え終わった後の重みを取り出し, 10^3回[0,Pi/2]の範囲のxをランダムで出してその重みを使って, 順伝播計算させた曲線,つまり,Sin[x]を近似したものが赤.

目標のSin[x]が青.

参考までに近似させる前のsigmoid関数が灰色となっています.

 

0に近いところはsigmoid関数の形状的に近似しづらいのは分かるので, そこら辺にもう少し訓練データを与えればよかったなと今は思っていますw

 

反復回数をもっと増やせばもっと綺麗になるけどもう私的には本質が行けたと思う(小並感)からとりあえずこれに関しては満足かなぁ.

こうなる前は過学習に悩まされたり, 活性化関数に悩まされたり,

それで思い出したけど, オートエンコーダ(自己符号化器(重みの良い初期値求める的な))は使ってないけど, ドロップアウト(たまに層を無視させる(ノイズを入れる的な))は使ってます.

あー疲れた.

然し, これはニューラルネットワークがちゃんと動くかのテストに過ぎなかったのである...

なぜなら, そう!目標は遥か彼方...!!!

それがうまくいかなかったから(さっき述べた誤差逆伝播法の欠陥)こっち(Sin[x]の近似)で性能チェックしていた次第であります. 

それはまたこんど紹介します(夏休みの自由課題のレポートにする予定)

 

寝て起きてソシャゲやってから期末テスト勉強します.

 

質問, 批判(煽り耐性ないからイケボかウィスパーボイスでオナシャス)歓迎.

※オフパコは受け付けておりません.

はろーわーるど

ID完全にミスったけど, いろいろ書いていこうと思います.

愚痴や悩みや進捗などが中心になると思います.

完全に自己満なので(忘備録的な, 自己のモチベ上げる的な)

少し痛いのはご愛嬌.

 

最終目標としては, 強そうな大学院(国外問わず)でDeepLearningしたいです.

機械という無機物が学習するということ自体もう面白いですよね.

それに今旬なので何も知らずに食いついています.

経験的に得られている情報は多いけれど理論が追いついていないらしいし(にわか乙)

 

しっかし, 海外に行きたい欲が半端ないです.

国内だといろいろ誘惑もあるし (言い訳)家族に甘えちゃうし(言い訳)

まあ何より, 研究者( )目指しているので海外経験積みたいのもあります(企業で研究か大学で研究かは未定)

 

今は英語をぽちぽちやったり, Mathematicaニューラルネットワークを使って関数近似したりしています. 

どちらも満足のいく状況ではないですが.

 

成果が出次第, ブログに書いていきまーす.

 

英語は今はTOEICの勉強中です. 体感600くらいあるんですが..., 今年中に800へ到達し(ヤバイ), そしたらTOEFLの勉強を始めます.

とりあえず夏は語学留学(クッソしょぼい)へ行くので期待ですねwww

 

ニューラルネットワークはとても行き詰まっています.(ブログ書き始めちゃうくらいに)

プログラムは書いてあるので変数を調節したりしていたのですが, 禿げそうなくらい難しいのでそれについて私が考えている問題に対してうまくいくように修正したいです.

 

あああ, とりあえず今はニューラルネットワークで頭がいっぱいです.

でも期末テスト勉強しないとなぁ...

(行くとしたら)大学院留学費用はめっちゃ高いので奨学金もらいたいしそもそも大学院入学にGPA高くないといけないし勉強しないと...