「deep learning」カテゴリーの記事一覧

2017-11-22

計算のどこを2値化したのか

Binarized Neural Networksでどこを2値化して,どこは実数のまま計算しているかまとめた.

重みW:推論で入力と積をとるところは2値,学習のときは実数(ただし-1 to 1にクリッピング)
積和s:推論のときは整数.学習のときも整数.
活性a:推論のときは実数で積和sを計算するときだけ2値,学習のときは実数値も2値も使う

重み勾配gW:学習のときは実数.添え字bが付いているけど2値じゃない
積和勾配gs:学習のときは実数.
活性勾配ga:学習のときは実数.活性aの絶対値が1以上のときは0.

2値の部分が驚くほど少ない.また実数で計算したものを2値化しても計算上のメリットがない.Binarizedと言っている割に性能が出ていないのはうなずける.2値化したなら,消費電力は3桁削減できないとおかしいのにそうなってない.

続きを読む
2017-11-17

人工知能に珈琲2杯持ってドアを開けることはできまい

今朝,珈琲を2杯淹れてカップを両手に持って,左脇に書類をはさんで歩いた.この状態で部屋の入口に到達.ドアを開けなくてはならない.開けましたとも.で,思った.人工知能内蔵のロボットではこの状態でドアは開けられまいと.カップ2個とも左手で持って右手でドアを開けるか,右手にカップをもったまま右手の指でドアノブを回すかで良いんだが,この解を見つけるのにたぶん珈琲を100回こぼす.それをクリアしたとして,普通の5本指ロボットでは珈琲カップを2個左手だけで支えるとか,珈琲カップを1個右手で持ってさらに右手でドアノブを回すなんてことは,機構的にできない.やった.人間の勝利だ.ああ,猿でも勝てるか.私は猿くらいには賢い.

別の解もあった.珈琲カップを一度床に置いてからドアを開ける.うーむ,食べ物の入った容器を床に置くのはどうかと思えるが,これでも良いか.ただし,ドアは開けても手を離すと自動的に閉まるので,足でドアが閉まらないようつっかえ棒をしておく必要がある.こっちの方が難易度高いかな.

続きを読む
2017-11-17

derivative 1って何だ

Courbariauxさんの論文Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or -1の中にderivative 1ってのが出てくる.1の微分?定数で微分するって何だよ.もう分からないよ.と寝てしまった.

今朝起きて考えた.x^2をxで微分すると2xだ.xによって傾きが変わるってこと.3xをxで微分すると3だ.xによらず傾きは3ってこと.ということは,1で微分するってのは関数の傾きが一定ならできて,微分の結果はその傾きだ.たぶんこれで合ってる.

続きを読む
2017-11-14

やっぱり自動運転車が人間の運転する車にぶつけられた

ラスベガスで止まっていた自動運転車が運転手の乗ったトレーラーにぶつけられた.自動運転車がどんなに安全に運行しようとしても,人間のドライバーのバカな行動には対応できない.それなのに,件の記事では自動運転車がよけなかったのが悪いと書かれている.ひどいな.自動運転車は悪くないだろ.人間同士だったらぶつけた方が悪いとなるだろ.でもこうなるのは予想できた.悪くなくても自動運転車のせいにされるのだ.この分では自動運転が許可されるのはずっと先だな.

昔のSFにこんな話があった.100人が乗った旅客機と1人が乗った飛行機が衝突コースに乗った.衝突は不可避だ.どちらもロボットが操縦していた場合,ロボットはどんな行動をとるべきかという話.1人が乗った飛行機を自爆あるいは墜落させて100人を救うのが正しいのか.いやいや簡単に結論を出せる問題じゃない.自動運転のAIはそんなことまで考えなきゃいけないのだ.人間より大変だよ.

続きを読む
2017-11-09

Straight-Through Estimator

Straight-Through Estimatorが分からなかったので調べてみた.八谷大岳の覚え書きブログには

”絶対値が1以下の勾配のみ用いて更新する”

とある.Quoraには

you just estimate that the incoming gradient to a thresholder is equal to the outgoing gradient.

とある.この二つが同じことを言っているとすると,バックプロパゲーションのときに上流から流れてくる勾配は+1と-1(と0もか?)で,それをそのまま下流に流すということになる.うーむ,元の文献(ビデオ)を見てもはっきり分からない.どうすりゃいいのよ.

続きを読む
2017-11-08

リカレントニューラルネットワークで点訳

点訳とは書籍を点字図書に変換する仕事だ.日本ではボランティアによって行われている.私もその一人だ.日本は世界でいちばん点訳ボランティアが多いそうだ.すばらしいことだ.点訳は文字を6個の点で表した点字に変換する作業だと思われがちだが,実はそこは本質ではない.いちばん時間がかかるのは点訳専用の「分かち書き」をするところだ.点訳の作業時間の80%は分かち書きの下調べに費やされる.分かち書きは目の見えない人が点字を読んだときに同じ音の別の単語と意味を取り違えないために必要だ.分かち書きには細かいルールがあり,例外もたくさんあり,身に付けるのに数年を要する.なので点訳ボランティアになるのはけっこうな努力が要る.

点訳ボランティアが1冊の単行本を点訳するのにはだいたい半年かかる.それから別の人が校正をして,特殊なプリンタで紙に点字を打って,点字図書館に納められる.今点字図書館にある点字図書は2万タイトルくらいだ.すごく少ない.そしてそれらの本は全て単行本だ.目の見えない人も週刊誌とかを読みたいだろうけれど,点訳に時間がかかるため,週刊誌のようにタイムリーに読まなければ意味のない書籍は点訳の対象となっていない.

点字図書をもっと増やしたい.1000万タイトルくらい欲しい.人手でやると1000万×半年=500万人・年かかる.不可能だ.週刊誌も発行日の次の日くらいには点字図書にしたい.そこでディープラーニングだ.リカレントニューラルネットワークで分かち書きを実行するのだ.今点字図書館にある2万タイトルは電子データがある.それを教師データとしてニューラルネットワークを学習させれば分かち書きを機械でできるようになる.分かち書きさえ自動化できれば点訳は一瞬で終わる.律速段階は点字プリンタの印字速度になる.これをやってみたい.

私がこのまま人手で点訳を続けても,残りの人生で点訳できる本の数はせいぜい60冊だ.それならば点訳用リカレントニューラルネットワークを1年かかって作った方がよほど効率が良い.やってみよう.

続きを読む
2017-10-25

ホップフィールドネットワークの閾値って実数なの?

Hinton教授のビデオを見ていたら,ボルツマンマシーンに行き当たって,そこからホップフィールドネットワークにたどり着いて,どんどん分からなくなっていったんだが,ココのサイトのホップフィールドネットワークの解説がわかりやすくてやっと腑に落ちた.閾値は何でも良かった.

分かってからwikipediaの項目を読むとさらに分かった.閾値θは時間関数でも良く,重みwも時間関数で良い.

続きを読む