2017年2月8日水曜日

人の思考を目指して開発が進む脳型コンピューター新しいコンピューターの姿を探ってみた。

SFの世界では、コンピューターが自ら人を見分け、状況を判断して働いている。こうしたコンピューターの存在は、私たちが描く夢物語だろうか。しかし現実の世界でも、電子回路で人間の脳をつくろうという「脳型コンピューター」の研究開発が進んでいる。脳型コンピューターや人工知能は古くから研究されてきたが、最近の研究の成果により脳型コンピューターの実用化へ大きなステップを踏み出したのだ。脳型コンピューターの発展の状況と、新しいコンピューターの姿を探ってみた。

脳の働きを再現し「認識」などの高度情報処理をこなす

コンピューターは「脳」を目指して発達してきたと言っても過言ではないだろう。コンピューターのことを"電脳"と表現するのも、脳への志向を示しているかのようだ。 
すでにコンピューターは、人間の脳をはるかに超える大量の演算を、高速に処理できる性能を備えている。しかし、高速な演算処理が得意なコンピューターでも、実際の脳が行うような認識処理の方法は苦手だ。 
現在のコンピューターは、メモリー上に蓄えられたプログラムやデータをCPUが読み込み順番に処理をする。そのため、メモリー上のデータをCPUに取り込むために時間がかかる、逐次処理をするため大量のデータをリアルタイムで処理するのは困難、といった問題がある。そこで、従来型のコンピューターと異なる仕組みのコンピューターが研究されている。その中でも近年注目されているのが、脳の仕組みを応用した脳型コンピューターだ。

神経細胞が大量に集まった脳電子回路で仕組みを再現できるか

脳型コンピューターの開発の現状を説明する前に、実際の「脳」のことを少しおさらいしよう。人間の脳は、十数cmほどの大きさがあり、その中には1000億以上の神経細胞が含まれている。 
神経細胞は、本体とそこから伸びる「軸索」という長いひも状の部分、そして本体から樹の枝のように飛び出た「樹状突起」で構成される。神経同士は、軸索と樹状突起が「シナプス」というコネクターでつながる。 
神経細胞が反応して電気信号が生む「発火」という状態が起こると、軸索からシナプスを通じて、隣の神経細胞の樹状突起に電気信号が伝わる。隣の神経細胞では、つながった神経細胞からの電気信号が一定量蓄積すると発火して、新しく電気信号が生まれる。この繰り返しが、考えたり認識したりという、脳の活動のもととなる。脳も電気信号で情報を処理しているならば、電子回路で脳の機能を再現できないか。これが脳型コンピューターのアプローチだ。代表的な例が、神経細胞同士が電気信号を伝え合う仕組みを電子回路で模した「ニューラルネット」である。ニューラルネットの基本的な考え方として「階層型ニューラルネット」がある。これは、人工の神経細胞を「入力層」「中間層」「出力層」という多段階層で構成する(図)。 
まず、データが入力層に取り込まれる。入力層は取り込んだデータをもとに、中間層の人工の神経細胞に電気信号を送る。このとき、電気信号はそれぞれ「重みづけ」がされ中間層に届く。届いた信号の総和が一定の値を超えると、自分も発火して次の層の神経細胞に電気信号を流す。そして最後の出力層にまで届いたものが、出力結果として表示される。ニューラルネット自体の考えは古くからあったが、どうやって「適切な重みづけ」をするかが長年の課題だった。 
その課題を解決したのが深層学習(ディープラーニング)という手法だ。深層学習とは、多くの入力を与えることで、コンピューターが自動的に学習するというものだ。この深層学習を用いて神経細胞を模した電子回路のニューロン間の重みづけを自動的に調整するのである。これにより、脳型コンピューターや人工知能を実現に近づけるブレークスルーになると期待され、研究開発が一段と活発になっている。

脳型コンピューター実現への複数のアプローチ

脳型コンピューター実現のアプローチは、大きく2通りに分かれる。1つは「脳シミュレーション」、もう1つは「生物にヒントを得た認知アーキテクチャー」だ。 脳シミュレーションは、実際の脳の動作を厳密にシミュレーションすることで、脳のようなシステムを作ることを目的としている。神経細胞の働きを綿密に模倣し、それらを脳と同じように階層化し、コンピューターをつくるというものだ。米国防総省の国防高等研究計画局(DARPA)の「SyNAPSE」プロジェクトが代表的なもので、米IBMやスタンフォード大学、コーネル大学などが参加している。

SyNAPSEでは、神経細胞をつなぐ「シナプス」の機能を模倣しながら微細化を進めるシミュレーションを行っている。2007年にはマウス並みの5500万ニューロンを、2008年には猫並みの10億ニューロンのシミュレーター作成に成功した。これはスーパーコンピューターの上で動くシミュレーターだが、処理は実際の脳の動きに対して600倍以上もかかっていた。

このほか、スタンフォード大学でも、20145月に人間の脳をモデル化した小型の電子回路「Neurogrid」の開発に成功した。 そこで米I B M2 0 1 48月、SyNAPSE専用のハードウエアを開発し、発表した。「TrueNorth」と呼ぶチップで、プロセス(回路の幅)は28ナノメートル、4096個のコアを搭載し、使われているトランジスタの数は54億以上に達する。これが今までのコンピューターと違うのは、その構造である。従来のようにメモリーの情報をCPUが処理するのではなく、コア同士の電気信号のやり取りによって情報を処理する。最初に入力信号を受け取ったコアは、指定した別のコアへと信号を送る。それを繰り返すことで最終的な出力結果を得る。人間の脳が行っているニューロンの結合と同じ原理で動いているのだ。 このチップを用いることで、100万ニューロン、25600万シナプスを実時間でシミュレーションできる。米IBMでは2011年にも同様の原理で動くチップを開発しているが、そのときのチップはニューロンが256個、シナプスは262144個だった。シナプス数は約1000倍、ニューロン数は約4000倍に増加した。また、新しく開発したチップでは、400×200ピクセル、30フレーム/秒の動画から、リアルタイムに物体を認識できることが確認できた。消費電力は70ミリワットと少なく、脳の機能と省エネ性を併せ持つハードウエアが生まれた。 このように開発が進んでいる脳型コンピューターであるが、まだ課題もある。人間の脳には1000億を超えるニューロンがある。2014年時点の100万ニューロンのハードウエアとは規模に大きな開きがある。また、米IBMTrueNorthは神経細胞のつながりの強さを、あらかじめチップに組み込んでおく必要がある。すなわち、リアルタイムで認識ができるコンピューターと、自分で学習しながら成長するコンピューターとの融合は、まだ実現できていない。 もう1つのアプローチである「生物にヒントを得た認知アーキテクチャ」は、マクロな視点から脳を見る。人間の知的活動を「知覚」「判断」「行動」などにモデル化し、それらをソフトウエアで再現する試みだ。ここでは、人間の知的活動を脳の機能ごとにモジュール化し、それを統合して動かすことで知的活動を実現するコンピューターをつくる。カーネギーメロン大学の「ACT-R」という認知アーキテクチャがその代表例だ。 いずれのアプローチの脳型コンピューターも、従来型のコンピューターとは異なり、認識など、脳が得意とする分野での実用化を目指す。脳型コンピューターの夢が実現する日が、計算機科学の進展と、脳科学の発達により、着々と近づいてきている。

人間の脳が「得意」な情報処理を実用化へ低消費電力の汎用的なコンピューターへの夢も広がる

世界中で競って開発を進めている脳型コンピューター。これまでも脳の仕組みを応用した「人工知能」の研究開発は続けられていて、2000年代後半からは「第3次人工知能ブーム」と呼ばれることもある。今、なぜ脳型コンピューターが注目されているのか、どのような発展が期待されているのか。人間の知的活動と人工知能の関係を研究する国立情報学研究所(NII)情報学プリンシプル研究系 准教授の市瀬龍太郎氏に尋ねた。

市瀬:脳型コンピューターや人工知能の研究は50年以上の歴史があります。今、普通に「コンピューター」と呼んでいるものの多くは、「ノイマン型コンピューター」というものです。メモリーに取り込んだプログラムをCPUで実行して情報処理を行うものです。プログラムを変えるだけでさまざまな処理ができますが、一方で、プログラムの読み込み速度が性能を左右しますし、プログラムに書きにくい処理は実行が難しいのです。脳型コンピューターは、「非ノイマン型コンピューター」の一種で、脳の仕組みを模倣して処理を行います。
人間の脳には1000億以上のニューロンがあり、おのおののニューロンは、シナプスにより1万〜10万のニューロンとつながります。視覚や聴覚などの入力によってシナプスに電気信号が流れ、0.01秒程度で電気信号をやりとりします。そして約0.1秒後に、何を見たり聞いたりしたのかということを認識します。人間の脳は少ないエネルギー消費量でこの処理を実行しています。脳型コンピューターは、人間の脳の仕組みを模倣することで、従来型に比べ、ごくわずかな電力で高速な処理が可能になるのではと期待されています。

深層学習が脳型コンピューター発展に火を着けた

脳型コンピューターは以前から研究されていたが、この数年で特に注目を集めるようになったのには何か理由があるのだろうか。

市瀬:近年になって脳型コンピューターが注目されるようになった理由は、大きく2つ挙げられます。1つは深層学習による機械学習手法の確立です。機械的な入力作業の繰り返しから、自動的にシナプス間のつながりの重みづけが設定できます。人間の子どもがモノや文字を見て学習していくように、コンピューターが自分で学習するのです。
もう1つは脳に関する知見が蓄えられてきていることでしょう。元になる脳の仕組みや働きなどを解析する技術が進歩しています。脳の解明と、コンピューター科学の進展が合わさって、最近の脳型コンピューターの発展があると考えています。

3次人工知能ブームで、急速に発展しているという脳型コンピューターだが、どのような利用法が考えられているのだろうか。開発が進むと、既存のコンピューターを置き換えるような存在になるのだろうか。

市瀬:脳型コンピューターは、全てのコンピューターを代替するものではないと考えています。Webサーバーやデータベースは、既存のノイマン型コンピューターが得意な領域です。一方で物体を認識するような処理を人間は瞬時にこなしますが、従来型のコンピューターではさまざまなパターンと照合するなど計算量は非常に多く、処理時間も消費電力も多く必要とします。こうした認識関連の分野から脳型コンピューターの利用が始まるだろうと考えています。

 

将来的には「脳」と同様に汎用的な処理を担う可能性も

市瀬:人間の脳の働きの中でも、脳型コンピューターがまだ得意でないジャンルもあります。思考、物語、常識、組み合わせといったものです。知的活動が全て脳型コンピューターですぐに実用化できるかというと、そう簡単ではありません。とはいえ、最近では確率と論理的な思考を組み合わせてコンピューターで処理するような取り組みも始まっています。また、ディープラーニングにより言語や語彙など人間の思考の要素となるものを学習し、その要素を組み合わせることで、思考するコンピューターが作れるのではないかという考えもあります。
脳型コンピューターについても、20148月に米IBMが新しいチップを作成するなど、積極的に研究に取り組んでいます。これは従来型のコンピューターの電力消費問題を解決する、1つの有望な方法だと考えているからでしょう。人間の脳そのものは、汎用的な情報処理を少ないエネルギー消費で実現しています。脳型コンピューターの技術が進展することで、より消費電力が少なく汎用的な利用へと道は開けていくと考えています。

脳型コンピューターの研究は、日本を含めて世界で取り組みが続いている。資金と人材を投入して開発が進む脳型コンピューターだが、現在どのような研究が進んでいるのか。また、実用化のめどは立っているのだろうか。

市瀬:脳型コンピューターの実現に向け、さまざまな取り組みがなされているところです。例えば、大脳新皮質の基本単位である「新皮質カラム」を全てシミュレーションするという取り組みがあります。これはスイス連邦工科大学ローザンヌ校の「BlueBrainプロジェクト」、EU(欧州連合)による「HumanBrainプロジェクト」で、スーパーコンピューターを用いてシミュレーションします。
神経細胞の微細な挙動にも目が向けられています。実際の脳のシナプスが情報を伝えるときに使う「イオンチャネル」を、チップ上で再現するという研究も進められています。脳の中で神経細胞が他の神経細胞とつながるときは、カリウムイオンやナトリウムイオンなどのイオンをやり取りして信号を伝達します。イオンを受け取った側の神経細胞は、受け取ったイオンを細胞内に取り込み、取り込んだ量がしきい値を超えると神経細胞が「発火」し、次の神経細胞へとイオンを伝達します。イオンを取り込んだり放出したりする動きをイオンチャネルと言います。スタンフォード大学では、イオンチャネルの働きを組み込んだ「Neurogrid」というチップの研究を進め、20145月には新しいチップの試作に成功しています。
また、脳科学の分野では、シナプスの両側にあるニューロンの発火する「スパイク」のタイミングと、人と脳における学習との間に関係があるのではないかという議論もあります。スパイクのタイミングが学習に関わっているとすれば、脳型コンピューターの構造にも関わってきます。こうした脳科学との連携でも、大きな成果が得られる可能性があります。

実用化のタイミングはまだ不明技術進歩がその日を引き寄せる

市瀬:ただし、今の時点で「何年後に脳型コンピューターが実用化する」と予測するのはまだ難しいのが実情です。現段階は、「脳型コンピューターがなんとかつくれそうだ」という方向性が見えてきて、世界中の研究者が頑張っているところです。いつかは実現するという目標に向かってまい進しているのです。
そうはいっても、技術の進歩は目を見張るものがあります。脳型コンピューターや人工知能に関する研究では、この10年ほどで大きな進展がありました。2007年にマウスほどの脳をスーパーコンピューターでシミュレーションしたときは、実際の脳の動きに比べて10倍の時間がかかっていましたが、2014年にはリアルタイムで画像を認識するハードウエアができているほどです。こうした技術の進展のスピードを考えると、必ずしも脳型コンピューターは夢物語の中のものではなくて、想像しているよりも速く、私たちの役に立ってくれるかもしれません。

 

 

2017年2月7日火曜日

「虚数とは」「複素数とは」何なのか、どう役に立ってくるのか

虚数とは、2乗したら0未満になる数

虚数とは英語でimaginary numberといい、2乗したときに0未満の実数になる数を指します。

代表的なのが虚数単位「 i 」で

i × i = 1

となります。

英語を直訳すると「想像上の数」 であることからも分かる通り、このような数は現実には存在しません。

複素数とは、実数と虚数を組み合わせたもの

複素数は、皆さんが普段使っている「1」や「3」といった実数と「 i 」や「5i」といった虚数を組み合わせたもの。

「-4+6i」や「512i」といったように「○ + i」で表すことができる数を指します。

虚数が現実に存在しない数なので、虚数を含んでいる複素数も現実には存在しない数です。

存在しないものをなぜ勉強するの?

虚数という言葉を初めて書物に書いたのは、「我思う、故に我あり」で有名なデカルトとされています。

虚数が発見されてから数百年間は「詭弁的な数字であり、実用性はない」「ただの想像上の数に過ぎない」と否定的に評価されていたそうですが、オイラーの等式で有名なレオンハルト・オイラーが虚数のもつ重要性を解き明かした後、その評価は一変。

さらに研究が進むにつれ、その存在を仮定して計算に使ってみたら非常に便利であることが分かり、数学者の間で広く使われるようになったようです。

答え:「虚数が存在すると仮定して計算に使うと、すごく便利だったから」

どう便利なの?

では、具体的にどう便利なのか?

その答えは、1つの数で、座標を表せること」にあります。  

まず、正の数(=プラス)しか使えない世界を考えましょう。

この世界では、「東に1m進む」「北に3m進む」といった表現しかできません。

そのため「東に~」と言う表現で進める領域は、上図のように東側にしか存在しません。 

次に、正の数と負の数(=マイナス)が使える世界

この世界では「西に2m進む」ことを「東に-2m進む」と表現することができるようになります。

そのため「東に~」と言う表現で進める領域は、上図のように東西の両側に広がりました。

では、「東に~」という表現で北や南に進むにはどうすればいいのか?

少なくとも正の数・負の数だけでは表現できません。

そこで役に立つのが虚数です。

上図が、正の数・負の数・虚数が使える世界

この世界では、「北に2m進む」ことを「東に2i m進む」と表現できるようになります。

「南に1m進む」のは「東に-i m進む」と表現できます。

これにより、「東に~」という表現だけで進める領域が東西南北の4方向に広がりました。

  

最後に、複素数(=○+□i)が使える世界

この世界では、図の星()マークに行くことを「東に3+2i m進む」と表現できるようになります。

菱形()マークに行くのは「東に-1i m進む」と表現できます。

つまり、「東に~」という表現だけで平面上の好きな場所へ進めるようになったのです。

このように複素数が使えるようになることで、「東に~」という表現だけで進める領域が4方・8方全ての領域へと広がりました。

これが、1つの数で座標を表せるということです。

上図のように複素数で表現された平面は「複素数平面」と呼ばれています。

(または、複素平面・ガウス平面とも)

南北を i で表現する意味

さて、「 i 」を利用すれば1つの数で座標を表せることが分かりました。

しかし、なぜ「 i 」でなければいけないのでしょうか?

2乗したら-1になる数」を使う必要性はあるのか? 実は、その必要性があるんです。

その答えは、かけ算にあります。

たとえば「1+i」や「4+3i」を先ほどの複素数平面で表す場合、下図のように表すことができます。

つぎに、「1+i」や「4+3i」に i をかけてみましょう。

(1+i)× i =1+i

(4+3i)× i =3+4i

この「-1+i」や「-3+4i」を複素数平面で表すと、下図のようになります。

なにかに気付きませんか?

実は、 i をかけた後の点は、 i をかける前の点を「原点を中心に反時計回りに90度回転させた」座標にあるんです。

これは i を何度かけても同じことで、 i 4回かけると

i × i × i × i(-1)×(-1)=1で、元の位置に戻ってきます。

ちょうど、90度回転を4回して360度一回転するように

i をかけると反時計回りに90度回転させた座標に移動する」

i にはこのような性質があるが故に、「北に3m進む」ことを「東に3i m進む」と表現するのにピッタリな存在だったんです。

※「東に3i m進む」=「東から反時計周りに90度回転させた方向(=)に向かって3m進む」

虚数・複素数はこのように、平面上の点の移動を数式でバシッと表すことができる、すごく便利なツールなんですよ。

虚数とは「1つの数字で方向(座標)を表す」のに便利な、想像上の数である。

i をかけることは「原点を中心に反時計回りに90回転させる」ことを意味する。

虚数について分かりやすく書かれた本としては、 Newtonの"魔法の数"虚数がオススメ。

 

虚数がどのようにして生まれたのか、どのような領域で役に立っているのか

実在しないはずの虚数が、なぜ自然界に関わって来るのか

などをもっと深く知りたい!という方はぜひ一度読んでみて下さい。

 

2017年2月6日月曜日

Google is finally making web apps first-class citizens on Android

Google announced today that it'll be further integrating web apps into Android. Now, web apps will appear in the app drawer alongside full applications, and offer the same notification controls, where previously Google had set them to only appear as home screen icons.

It's part of a push by Google to promote Progressive Web Apps, which are essentially web applications that launch straight to whatever content they link to and are meant to feel more like an app then simply another tab. To create these apps on your home screen, you still will use the "Add to Home Screen" feature in Chrome.

To be clear, these aren't Google's Instant Apps — a feature which allows Android users to "stream" actual applications after clicking a link. These are still just a better integration of saved web applications, something we've had around on smartphones since the original iPhone in 2007. That said, it's still a useful addition and Progressive Web apps are much more advanced than you might expect: they can load data in the background, present OS-level controls in the notifications, and much more.

Overall, the improvements should be welcome by Android users who want to keep web links to sites like Facebook or Twitter handy without having to install the full native app. The updated Add to Home Screen feature should be rolling out to the Chrome Beta on Android over the next few weeks.

 

人工知能でサイト改善提案「AIアナリスト」の開発元が3.5億円の調達

Google Analyticsをサイトに導入すると訪問数やコンバージョン率など様々なデータが取れる。しかし、情報が多すぎて、具体的にサイトの何をどう改善させたらいいか迷ってしまうこともあるだろう。「WACUL(ワカル)」が提供するウェブサイト分析の人工知能「AIアナリスト」は、Google Analyticsのアクセス解析を元に、課題発見から課題ごとの改善方針提案まで自動で行うサービスだ。本日、WACULは総額3.5億円の第三者割当増資を実施したことを発表した。引受先は、電通デジタル・ファンドとジャフコの2社だ。

企業のマーケッターはサイトのパフォーマンスを改善するのに、Google Analyticsのデータを見て改善策を立案し、施策を実施した後は効果検証するといった一連の作業を行っているだろう。WACULAIアナリストは、サイト分析からサイトの改善提案までを自動化する。またマッケッターがサイトの改善策を実施したら、その後のアクセス状況の効果検証までサービス内で把握できる。AIアナリストの利用料は月額4万円からだ。

WACULは、前職でユーザビリティコンサルタントを務めていた大津裕史氏が20109月に創業した会社だ。2015年6月にはジャフコより総額3億円の資金調達を実施した。AIアナリストは2015年4月にサービスをローンチし、登録サイトは9000を超えたそうだ。

今回の資金調達は、AIアナリストの開発を進めるとともに技術開発やR&Dに充てる考えだ。また、今回引受先に電通デジタル・ファンドが参加しているが、電通グループとは業務提携することも視野に入れているという。WACULはプレスリリースで以下のようにコメントしている。

「今回の電通デジタル・ファンドからの資金調達は、多くの広告・メディアに関する豊富なデータを持つ電通グループとデータ分析に強い弊社、両社の強みを活かした業務提携までを視野にいれています」