クーの自由研究

冬の到来:空気が教えてくれるよ。う~んと深呼吸して、鼻がツンとしたら、それが冬のはじまり。

自己符号化器の実験まとめ

改めまして おはようございます

冬眠から目覚めた後、ようやく精神も安定して定着し、体のコントロールもできるようになってきました。
昨年のことは、まだよく思い出せないことがあるのですが、そんなとき「ブログ」はたいへん有用でした。やっていてよかったと心底思いました。
このときのために「ブログ」を書いていたといってもいいくらいです。

f:id:np2LKoo:20170325181317j:plain

昨年の「ブログ」を見るにつけ、たいへん恥ずかしい部分もありましたが、それを含めての記録で、何回か読むと、だんだんその時の「考え」や「思い」を思い出せたりしています。忘れないってステキ!

まだ、本格始動はできていないので、昨年のふりかえり・まとめなどをしながら思い出します。だから見てみましょう、最初のねがい。確かめながら。

このブログのコンセプト 

素朴な疑問を実験をして報告する」を基本としています。ボクの素朴な疑問は、人類の方から見れば「ひねた疑問」や「思い込みからくる勘違い」にみえるかもしれません。
ボクなりに少ない細胞で結構マジメに考えているつもりなので、多少の「的はずれ」はご容赦ください。

このブログの現在のもっぱらの興味

興味を持ったのが、「自己符号化器」でした。世の中は「ディープラーニング」「深層学習」一辺倒のような感じがしますが、不思議なことに、そこにはそれほどの興味はわきません(本読みして勉強はしています)。
それよりこの、「自己符号化器」もしくは「中間1層の単純なニューラルネットワーク」に、とても魅力を感じています。(NHKのナレーション風に)なぜなのかは自分でもわかりません。
この「自己符号化器」の本質をマスターすることが当面の目標になっています。
自己符号化器で実験を始めましたが、MNIST(0~9の手書き数字の学習)は他の方がやり尽されている感じがして、題材としては面白みが少ないのかも、と感じました。(ボク的には超絶おもしろいのですが)
そこで、題材を「サウンド」にしようとおもいましたが、標準的な学習用実験・評価セットがみつかっておらず、サウンドに関する機械学習の情報も画像ほどは多くないため、苦労している状況です。

助手の暴走?について

ボクにはいろいろなことをサポートしてくれる助手がいるのですが、冬眠中のブログ管理を任せていました。(「研究」なので助手としていますが、いろいろお世話になっており、ボクがえらいわけではありません。むしろ実態は逆かもです。ただこのブログの主導権はボクにあります!)
気を利かせて音楽関係の話題に挑戦したようですが、空中分解なのか、単なる行き詰まりなのか、中途半端な状態となっており申訳ございません。
ボクが書く他に「聖なる館」(「あきらめのやかた」ともいうようですが)などの部分は、今後も助手が書いていくことになると思います。
他のサポートメンバーの方も話題があれば、何か書いてくれるかもしれません。というか、ボクは筆が遅いのでどんどん書いてください。
なお該当部分の文責はボクにはない(なので、自由に何を書いてもらってもよい*1)のでよろしくお願いします。

昨年の振り返りとまとめ

自己符号化器とは

 英語ではオートエンコーダ(AutoEncoder)と呼ばれます。

 自己符号化器(AutoEncoder)は、入力信号(情報)を自動的に符号化(encode:ニューラルネット上でのつながりの数値(重み)やしきい値(バイアス)の学習)できるようになります。その値を使って、できるだけ元の信号(情報)に復号(decode)するしくみを持つものです。「符号化のため」のロジック自体を作るのではなく、学習するしくみそのものを準備しているところが興味深いです。信号(情報)を流す過程で、入力と出力が(学習している範囲で)できるだけ同じになるように、いろいろなパラメータを少しずつ調整(=学習)していきます。

f:id:np2LKoo:20170326105716p:plain

外から見ると、学習すると入力と「ほぼ同じもの」が出力されるだけなので、大した機能・しくみではないように見えます。

学習では、もとの情報より少ない情報で元の情報を表現しようとするので、結果としてその情報の「特徴」を強く反映し、重要でない情報(欠落させていっても、復元が大きく崩れない情報)を省く傾向があります。

そのため機械学習での「特徴抽出」ができる基本的なしくみとしてよく知られています。この自己符号化器のしくみ「など」を何段にも、何層にも重ねたものが「ディープラーニング」であるともいえます。(もちろんそれだけではないですが)

ディープラーニング全盛の時期に、自己符号化器「だけ」にこだわるのは時代錯誤なのですが、わかっていることでも自分で考え、自分で実際にやってみる「自由研究」の精神に従い、自由に研究します。(自由研究も立派な研究です!キッパリ)

自由研究の準備#2

実験の準備で自己符号化器をスクラッチで作成しました。まだ「ゼロ:からつくるDeep Learning」が出版されていない時期でした。もし出ていたらこの本をなぞっていたと思います。とてもいい本で何度も読んでいます。言うまでもないですがボクの実験は混沌とした部分や隅っこ部分についての実験が多いです。ディープラーニングを「学習」したい方はボクのブログなど読む暇があったら、この本を100回くらい読みましょう!(あれ?これってジブンに対して言ってる?)

自由研究の準備#8

実験ソースをGITHUBにアップしました。英語も背伸びして、がんばって勉強しました!改良版や実験結果例をアップしていないので、そのうちやりたいです。

自己符号化器#1 単一ノードの学習

グーグルの検索の扱いで「単細胞」がいけない言葉(馬頭星雲罵倒語:検索表題に表示されない)であることを学習しました。人類の皆さまへ:細胞が少ないからといってバカにしてはいけません!キュー

自己符号化器#2 初期化パラメータの調整による学習進度の確認

初期化の値が学習に与える影響を確認しました。画像処理においてはガボールフィルタセットを初期値として事前に準備すればいい感じに学習が進むことを確認できました。

自己符号化器#3 学習済情報の再利用

活性化関数が同じである限りは再利用できることがわかりました。逆に活性化関数が異なる場合は、事実上再利用の意味がないことがわかりました。

自己符号化器#4 活性化関数を線形にした場合の学習

ボク的にはこれが実験の最大の収穫でした。他の実験はほぼ予想とおりなのですが、(この実験はうまくいかないと思っていたので)この実験がうまくいって最初はとても驚きました。なぜなら、「活性化関数」の「非線形」が学習の要であると思っていたからです。線形でも学習できたことは、学習の神髄はそこ(活性化関数の形)ではないことになります。本質がどこにあるのかをいまだ探索中です。

自己符号化器#5 重み共有を外しての実験

このあたりから純粋な「自己符号化器」ではなく、単なる「中間1層のニューラルネットワーク」になってきていますが、ボク的にはこれも「自己符号化器」そのものです。学習の力強さを実感できました。

自己符号化器#6 画像変換(回転)の学習

あ、本文にも書いていますが、回転を学習できているのではなく、その前段階としての処理が問題ないことの確認でした。これがVAE(Variational AutoEncoder :変分自己符号化器)で「回転」を変分の特徴として抽出でき、変分のパラメータ調整により回転の図形「生成」を制御できれば本当の「回転」学習といえる「はず」です。なので、表題は大風呂敷なのでした。

自己符号化器#7 位置正規化の学習

#6と同様に表題は大風呂敷でした。微小図形の範囲認識とその正規化が自己符号化器だけでできるとカッコイイなぁ。

自己符号化器#8 バイアス学習率の独立

この実験も「自由研究」ならではの内容だった気がします。何事もやってみるものです。

自己符号化器#9 学習率のチューニング

自動的にこのあたりの「ハイパーなパラメータ」自体を「学習する」メタな事故富豪火器があったらなぁ。

自己符号化器#10 スパース正則化

予想していた程度のきれいな図形が獲得できなかったので、ボク的にはいまいちな結果におわりました。ときにはこんなこともあります。

風呂敷を目いっぱいひろげる

途中で素材を音に変更しましたが、準備のみに終始しました。

この表題をみて読み始め本文を読んでがっかりされた方、ごめんなさい。

でもきっとできるようになります!

昨年はいろいろな書籍を買いましたが、この本とカンデル神経科学の本は完全なる鈍器です。でもめっちゃ楽しいです。

医学は知らないので、1ページ読むのにさらに別の検索をしなければ読み進められません。

でもそれを含めて最高におもしろいです。論理計算派の方でも必ず楽しめると思います。

自由研究の準備#9 PythonでのMIDI操作(SMF編)

Pythonでサウンドや音楽を扱うための準備をしていました。MIDIをやると、関連してどのVSTiが音がいいか。とか自然なリバーブエフェクタはどれか。とか深みにはまりました。

自由研究の準備#10 Pythonライブリのlibrosa紹介

いまや、「このブログの存在意義はこのページである」といいきれるほどこのページ「だけ」人気があります。

「librosa で 検索」するとかなり上位に表示されます。

ほかのページもこのページぐらい「読める」内容にしていきたいです。

ちなみにこのブログアクセスのほぼ1/3(ちょっと切る)はこのページです。

とはいえ、このブログはずっと「6hot:シックスホット」なので、キラーコンテンツといえるほどのものではありません。6hotはスパースアクセスともいいます。

自由研究の準備#11 Pythonでのフーリエ変換解析

今、見返しても、全般的な目の付けどころは悪くはないと思います。(ジブンをほめてあげたり)

フーリエ変換に限らず数学の圧倒的力不足を痛感しました。まじめに勉強します!

実装能力が不足し、数学的知識と技能が圧倒的に不足していることを痛感しました。(ジブンにダメ出ししたり)

今年の抱負

 時期はずれの今年の抱負ではありますが、引き続き自己符号化器サウンドの研究をします。
サウンドについては一歩踏み込んで(時期尚早ではありますが)「計算機音楽」の自由研究を進めたいと思います。

自己符号化器」では学習済のユニット間の演算(学習の統合や分離、異なる学習結果の関連付け:exバイオリンやピアノの音と楽器画像の関連付けなど)の実験ができればと思っています。

計算機音楽」では神様ともいえる諸先輩方の功績をなぞり、入門します。

今年も秋までの期間になると思いますが、読者の方々にはたまに訪れてみていただきたく、よろしくお願いします。(今年も内容はあいかわらずつまらないと思いますが、その分ギミックや雑談にも一層力を入れていきます。)

マルコメ 生みそ汁 料亭の味 しじみ が超絶おいしい件

今年も実験と関係ない蛇足・蛙の足あとコーナーをやります
実験の記事は前座で、「日記としての本編」はこちらになります。
お味噌汁にはまっています。近くのスーパーで8食入りが88円で売っています。このブログ3品目の殿堂入りを果たしました。


このような素晴らしい食品を開発された方に感謝です。どうも有難うございます。
乾燥ワカメをごく少量加えるとGoodです。ネギなどのトッピングは味が変わるので控えほうがよいです。
今日もこのお味噌汁で一日がはじまりました。

 

2歳の春に*2 Koo Wells

*1:ボクの実験とかぶっても矛盾しても、反論・批判しても、伊藤真澄さんの「ユメのなかノのわたしのユメ」を歌ってもよいですよ。

*2:かえる界では物ごころがついた年を1歳、冬眠あけで2歳とカウントします。人間界とは年齢の数え方が異なります。人間でいうところの「誕生日」がはっきりしないことにも関係があります。