2018年1月11日木曜日
成長するAI脳
機械学習における興味として、将来的に機能性能を向上したくなった場合に、アーキテクチャをどう拡大したらよいのか、という問題がある。これには二つの側面があり、ひとつは単純に処理性能を増やしたいとき。これは簡単で、学習済みのマシンをコピーして複数並べ、前段で負荷分散すればよい。問題はもうひとつの側面で、より知識を増やしたいときにどうするか、だ。
今はあまり問題になっていないが、アーキテクチャが固定でデータをどんどん投入していくだけ、とはならないはずだ。難しいことを考えれば考えるほど、求める結論が多いほど、きめ細かいほど、元データが多いほど、より大きなアーキテクチャが必要になるはずだ、と考えるのが自然だ。そして往々にして、要求は時間と共にエスカレートするものだ。
ノード数や層数を増やして新しく学習し直す、というのなら話は簡単なのだが、これではその度に学習成果がリセットしてしまう。実験ならともかく、実用マシンでこれを行うのは困難だ。そこで、既存の学習結果を残したまま、アーキテクチャを拡張するためにはどうするか、という学問(技術)が生まれ、検討されるようになるだろう。これを考えてみる。
マクロで考えると、これはスケールアップとスケールアウトということになる。前者は、既存の学習マシンにノードを付け加え、結合を弄る、という考え方になる。後者は、既存の学習マシンはそのままに、別の学習マシンを新たに立て、これを結合する、という考え方になる。だが既存のそれのように単純には行くまい。
まず、スケールアップに関して考えると、学習済みの学習マシンに未学習のノードを付け加えることで、既存の知識が消えたり不具合が出たりする可能性がある。これを防ぎ、更に性能を上げるには、どのような構造にしたらよいか。後者は、そもそもAI同士をどう結合したらよいのかが分かっていないし、新たにつなぐマシンはまっさらだから、繋いだ後にどうデータを流したらよいかも分からない。
前者についてはアイデアがあって、既存のノード1つを2つ、3つと増やし、結合先結合元自体は層に応じて増やし、その初期パラメータを既存の学習結果と同じになるように設定する、というものだ。これを少し解説する。
例えば、既存の学習マシンの中間層のノード各々を全て二つに増やす、と考える。そして、全ての結合は既存のノードに準じたつなぎにする。例えば、既存のノードA1の先にノードB1がつながっているとすると、既存のノードはA1ひとつからA1とA2の二つになり、接続先はB1とB2の二つになる。このとき、A1-B1は既存の接続であるが、この他にA1-B2、A2-B1、A2-B2の接続ができる。この際、新たな三つの接続における影響係数を全てゼロにする。
こうすることにより、新たにこのマシンにデータが流されてきたときに出てくる答えは、既存のマシンが出す答えと同じになる。しかしこれは実働フェーズでの話であって、学習フェーズにおいては全てのノードに公平にフィードバックされるから、新たな学習においてはゼロだった係数は変化していく、というものだ。
後者は更に難しい。まず目的が問題だ。同じデータを使って別の種類の結論を出したい、というのであれば、入力は同じで出力は独立している、お互いのマシンは干渉しない、という形態になる。例えば手書き文字認識において、文字を特定するマシンと、その文字を書いた人物を推定するマシンを並べる、というイメージだ。これは比較的簡単な部類になる。
では、こんなものはどうか。診察結果から病名を診断する「医師マシン」において、今までは掛かりつけ医レベルだったものを総合病院レベルにしたい、と考えたとする。つまり、従来は一人の医者(マシン)だったところ、多くの診療科医(マシン)の集団にして、どの診療科が診るかをまず決めて、あるいは最終的にどの診療科医の結論を尊重するかを決めて診断をする、という形に変えたい。その場合はどのようにすればよいのだろう。
既存の(汎用)医者マシンが出す結論(病名)は、病名+確率のリストである。病名毎に診療科を割り当て、診察結果と医者マシンの結論を診療科医マシンに入力する、という形になる。この際、診療科医マシンには他の診療科の病名は入力されない。
こうすると、初期においては診療科医マシンと医者マシンの結論は同じであるが、学習が進むことで診療科医の診断の方が精度が高くなっていく、ということが考えられる。
もちろんこの他にも考えられるアーキテクチャはごまんとあり、用途目的によって使い分けられることになるのだろう。重要なのは学習し直しが発生しないことで、こうすることによって、アーキテクチャが変わった時期から急激に精度が上がっている、などという効果が期待できる。
登録:
コメントの投稿 (Atom)
注目の投稿:
超音波モーターの原理によるVR用トレッドミル
VRにおけるリアリティ問題の一つに、その場で動くのではなく移動する場合、つまり歩いたり走ったりすることが挙げられる。実際にはその場にいるので、歩いたかのように足場を調節してやる必要がある。 これを実現する方法として、すり鉢状の滑りやすい足場を作っておく方法と、トレッドミルを使...
人気の投稿:
-
性善説と性悪説、どちらを取るかと言えば、やや性善説、だろうか。 子供の成長を見ていると分かるのだが、基本的に子供は善だ。だが、同時に自分勝手なところもある。人の持っているものを欲しがり、場合によっては喧嘩してでも奪おうとする。だがこれは「悪」と言えるほどのものではない。 ...
-
http://techon.nikkeibp.co.jp/real/project/025.html 水と混ぜるだけでできるセラミックスで、圧縮強度、曲げ強度、引っ張り強度、接着強度、耐食性、とあらゆる面で優れているのだそうだ。また、混ぜ物ができるので、その特性をさらに...
-
CAS冷凍 については何回か書いているのだが、いわゆる冷凍睡眠にこれを使えないだろうか、と考えた。 不治の病を未来の医療に託すとして冷凍睡眠(実際には死んでから凍っているのだが)している人は居るし、火星程度より遠くに行くとなると冷凍睡眠の実用化は必要になるだろう。「20...
-
フリーズドライには、戻したときに食材の食感が変わってしまう欠点があった。代表的には、豆腐が高野豆腐になってしまう。じゃがいもがスカスカになってしまう。葉物野菜はしなしなになってしまう。これらの欠点を、「 CAS冷凍 」によって補うことはできないか、と考えた。つまり、冷凍には...
-
骨梁とは、骨の内部に存在する網の目ないしはスポンジのような構造のことだ。この構造によって、骨は頑丈なのに軽量でいられる。類似の構造としてはアルミ発泡材があるが、あれはどちらかと言えば消音や軽量化が目的であり、骨のような(建築用語で言うところの)構造材としての用途とは少し違う...
-
ハクキンカイロの発熱原理を調べていて、これを防災用(キャンプ用でも良いのだが)の湯沸しに使えないかと考えた。 普通、キャンプではガスコンロを持っていく。だがあれは裸火を使うから、熱効率は悪い。これに対してハクキンカイロの仕掛けは、白金触媒を適切な場所に配することで、極...
-
http://www.reconstruction.go.jp/topics/m18/04/20180409160607.html 復興庁が出した、東日本大震災における復興支援の報告書だ。 ざっと読んだが、よくある役所の成果報告書という感じで、タイトルからして「事例...
-
http://japanese.engadget.com/2017/03/28/ai/ これは、上の記事への反論である。 記事の流れについては先のリンクを読んで頂ければと思うが、大きくはその結論として①AIには想像力がない(苦手)、②日本人には世界に稀に見る想像力...
-
ソフトによっては機能が多すぎて、メニューの中を探すだけで一苦労、ということが増えてきた。画像編集、CADなどは特にそうだが、ワープロ程度であっても既に充分に多い。一度も使ったことのない機能も多々ある。 ソフトによってはメニューがカスタマイズできるものもあるが、その範囲は...
-
電線の地中化が遅々として進まないそうだ。 電線を地中化できない最大の要因はコストだろう。よく「予算が無い」などと言われるが、その本質は「それだけの予算を掛ける価値が見出せない」ということだ。地中化の主目的は防災だが、普段のメリットがせいぜい景観くらいしかないことが、...
0 件のコメント:
コメントを投稿