Deeplearning とか 人工知能とか

人工知能について勉強している理科大生

人工知能が単語の意味を理解するとは

意味の理解

人工知能がとある単語、動詞の意味を理解しているとは

どのような条件を満たせば理解していると言えるのでしょうか?

それは人間が単語を理解する仕組みを考えれば良いのです

例えば次の単語

辟易

へきえき、と読みます

意味がわからない場合が多い単語だと思います、多分(笑)

もしこの単語を知っている人は他の難しい単語を探してください

今、私たちは辟易の意味を理解していない状態です

それでは僕がこの単語の意味をお教えします


辟易
用法 この状況に辟易している。
類似の意味 嫌気がさす。

おそらくほとんどの方は辟易のだいたいの意味について”理解”することが出来たと感じたと思います

この理解のメカニズムを人工知能に置き換えると

人工知能がある単語の意味を理解しているとは

ある単語に対して、それと関係性が深い単語がインデックスにあり

その単語もまた他の単語と繋がっているということなのです

ここで理解しているとはそれぞれの単語を繋ぐ意味記憶が存在しているということです

終わりに

最後まで読んでいただきありがとうございました

人間の理解の認知について、分かっていただけたかと思います

日々の思考実験でこのようなことを発見することで、汎用人工知能に一歩ずつ近づいている気がして

とても楽しく感じます。。。

ありがとうございました

ソ・シュール言語学と汎用人工知能

シニフィアンシニフィエの全能アーキテクチャとの関わりについて

今から150年ほど前フェルディナン・ド・ソシュールという言語学者がいました、近代言語学の父とも呼ばれています

今から彼が見つけ出したシニフィアンシニフィエという概念について話したいと思います

シニフィアンとは、記号表現、能記のことで例えば海という文字を表します

シニフィエとは、記号内容、所記のことで海のイメージ、塩辛くて波があって青い、生き物が住んでいるなどの抽象的なイメージを表すのです

ここで重要なのは人間はどの言語を喋っていても、海に対して認識に多少個人差はあれど共通した認識、シニフィエを持っていることです

つまり言いたいのはシニフィエは人間の話す言語によらないということです

これは人間の思考は言語の表記、シニフィアンベースで行われているわけではないということを示しています

この事実は汎用人工知能を作る上でとても重要です

なぜなら私たちが作るべきものが文章から抽象イメージの作成、処理、再度文章化

の流れで動作すべきであるということを把握できるからです

流れを把握できたところで、次の課題は人間の思考の構造化です

人間が文章からどんな要素を抽出し、頭の中でどのようなシニフィエ、イメージを作り思考しているのかという仕組みを考える必要があります

まさにそれが全能アーキテクチャの分野であるのです

終わりに

最後まで読んでいただきありがとうございます

まだまだ汎用人工知能を作るための道のりは遠いですが全能アーキテクチャについて考えていると

汎用人工知能に一歩ずつ進んでいるような気がしてとっても楽しいです

自分が死ぬまでにはYUIちゃんみたいな可愛い人工知能を作って見たいです。。。(笑)

全脳アーキテクチャモデル描いてみた

イントロ

人間の脳の構造、動作を真似て強いAIを実現する取り組みを

全脳アーキテクチャと言いますが

そのモデルを描いてみました!

まだまだブラッシュアップが必要ですが、、、

ひとまず出来たので紹介してみたいと思います

全体モデル f:id:meipuru_344:20170802172950p:plain

各節はそれぞれのニューラルネットワークを表しています

視覚野などの感覚野は物体や音の名前を認識し文脈イベントログに出力します(今からイベントログについて説明します!!)

f:id:meipuru_344:20170802190403p:plain

イベントログは、現実世界の出来事を列挙してゆきます

例えば

音楽が流れている
人が歩いている
時計がある

などです

続いて

f:id:meipuru_344:20170802191056p:plain

上の部分

自己プロパティ:自分の名前、年齢、現在地、時刻などを持ちます

文脈ログ記憶とは、イベントログで起きたことを短期記憶で保存します 今日起きたことを記憶していることと同じです

意味記憶:二つの単語同士の関連度を保存します、イベントログ記憶の単語について推論をするのに使います 例えば
ログ:彼女が下に来ると言った
この場合自分の現在位置がマンションであれば(自己プロパティの要素) 下とエントランスという単語の繋がりがあれば最初のログを
ログ:彼女が玄関に来ると言った
と推測することができるでしょう

エピソード記憶は文脈ログの中でも引用回数が多かったものをエピソード記憶として保存するものです

エピソード記憶の中でさらに引用回数が多いものを習慣、癖として登録します

欲求、感情

f:id:meipuru_344:20170802191602p:plain

それぞれの欲求は自分のプロパティ(空腹度、眠さ、現在地、学歴)

などにより刺激されます

また感情はイベントログによって刺激されます 例えばイベントログに、宝くじが当たったなど出ると嬉しいという感情が生起します

f:id:meipuru_344:20170802192311p:plain

最後に行動決定についてです、これは脳における大脳新皮質に該当します

おそらくRNNを採用するのが適しているでしょう

非常に膨大なそれぞれの要素を受けた行動判断ニューロンは次の行動を指示します。

例えば挨拶をする、ご飯を食べにゆく、愛を伝える。

挨拶をするという発話行動を指示された発話ニューロン

手続き記憶から挨拶をするというニューラルネットワークを持ってきて(これはもちろんリカレントニューラルネットワークです)

時間、相手の身分、場所などを入力情報として挨拶を行います。

そしてここで脳の働きは収束します



終わりに

最初に述べたようにこのモデルで完成とは全く思いません

まだまだ人間性を再現するのに必要なニューロン、また文脈ログをいかに一般的な形にするか、手続き記憶の教育方法、、自己学習機能、などが必要不可欠です。また

ニューロンの入力、出力ベクトルの要素数は膨大ですが全てを定義してゆくことが必要です。

しかし、一ずつ定義してゆくことは、大変ですが、赤ん坊にものを一つ一つと教えてゆくスピードと同じです。

時間はかかりますがそれが人間を作るために必要な過程なのです。

これからもこの研究を続けたいと思います。

一個人のアイデアを最後まで見ていただきありがとうございました!!

よかったらコメントをもらえるととっても嬉しいです^^

全脳アーキテクチャ

この前僕が語ってたボトムアップ汎用人工知能についてですけど、、

 

既に先駆者がいたのですね。。(泣)

 

やはり自分が思いつくことなんて誰かしら思いついてるもんです

 

誰かやってる人がいるんだ〜、ってちょっぴりショック

 

でも自分と全く同じ考え方をしている人はいなかったりするのかなぁ?

 

それでも自分の研究したい内容は変わりません

 

全脳アーキテクチャのモデル構築とその学習方法

 

今日はちょっとしょんぼりしたので寝ます。。。w

全脳アーキテクチャを用いた汎用人工知能の構築

イントロダクション

f:id:meipuru_344:20170720072448j:plain

記事を御覧いただきありがとうございます、全脳アーキテクチャを用いた汎用人工知能の構築の実現性について自分の考えを述べたいと思います

結論から言うと、現在訪れている第三次人工知能ブームで全脳アーキテクチャを用いた汎用人工知能の構築をほぼ実現することができると思います

今からその全脳アーキテクチャの構成法、妥当性について書いていきたいと思います


一章:人間の脳内情報処理

一節:脳の視覚処理の仮説

f:id:meipuru_344:20170720072808j:plain

やはりボトムアップ型ですので人間の脳の動作を模倣します。それではまずは、視覚処理を例えにして人間の脳内情報処理についてある仮説を立ててみようと思います。

人間の目は視神経から入力される画像、動画データはおよそ800万画素と言われています、視野角全体で言うと数億画素まで認識できるとも言われています。

が、、、今は入力画素数は重要ではありません。

問題は視神経からの入力を受けた脳の視覚野が画像に対しどのような処理をして脳の他の分野にどのような出力を与えているかです、また視野角に対する他の分野からの入力というのも考えます。

ここで視覚野からの出力とは何であるか考えてみます、それはすなわちこのようなものです

Output:単語(見えているもののラベル付け、分類)

また、視神経以外からの他分野からの入力とはこのようなものです

Input:疲労度、眠さ、痛み、

入力はしばしば人工知能人間性を与えます、上記で上げたような要素の入力成分が高ければ、実際の人間においては目が霞む、視覚をシャットアウトする(目を閉じる)などが起きます

これらは本来は人工知能に必要とされないことですが、通常の人間で考えると疲れているときに眠ることは自分を守る上で重要なのです。

仮説についてまとめますと、人間の視覚野はとある入力に対して、大抵分類可能な要素を出力していると考えることができるということです。

全脳アーキテクチャ人工知能構成ではその出力、受ける入力の適切で、網羅的なモデル化人工知能構築作業において最も重要なパートとなるのです。

二節:仮説の妥当性の証明

情報処理の妥当性

次に、一節で述べた仮説の妥当性を人間の性質と比較して述べていきたいと思います。

(人間はとある入力(他分野からの入力も加味します)を受けると分類可能な要素を出力すると述べました、もちろんこの出力はニューラルネットワークを通じて出力されます。)

世界には恐怖を全く感じることができないという方がいらっしゃるそうです、自分はその原因は状況を判断する分野の出力が全くない、もしくはその出力のシナプス結合の欠損ではないかと考えています。

さらに近年認知されているアスペルガー症候群などの原因についても、状況判断の分野において"空気"という出力(実際はそれに関連する要素の出力)が全くない。ということで説明ができるのではないかと思います。

世の中で発見されている高次脳機能障害については各機能を担当するニューラルネットワークの出力、機能障害が関係していると考えると、各脳機能障害についての原因を説明することができます。(もちろん複雑かつ、高度の脳機能障害については説明が難しいものもありますが)それが情報処理の妥当性です

情報処理の妥当性について話したところで、このネットワークの構築方法を採用する妥当性を説明したいと思います。

商業的妥当性

f:id:meipuru_344:20170720072942j:plain

先程述べた恐怖を感じない、という性質についてですが、人工知能においてはどうでしょう?

軍事ロボットを用いた実戦において恐怖は正確な判断の障害となるものです、もちろん訓練において臆病であることは自分を守る上で重要なのですが実戦においては恐怖は完全に除去、もしくは優先順位を下げるべきでしょう。

それは自身の感情判断をする分野において恐怖という出力を一切停止するという処理に該当します。

また家庭用アンドロイドにおいても同じことで、例えばアンドロイドが家族に虐待されていたとします。当然人間と同じ神経回路を持っていますから怒りを感じるはずです。そこでアンドロイドは家族を傷つけてしまうかもしれません、しかしそれは避けなければなりません。(個人的には高度な脳機能を持ったアンドロイドは人権を有すると思うので、その権利があっても良いかもしれません、また怒りを留めることによってニューラルネットの計算バランスが崩れ、アンドロイドが異常動作をしてしまうかもしれません。)

アンドロイドによる反撃避けるためには、アンドロイドの感情判断の分野における怒りの出力を一切停止にすれば良いのです。

これは人工知能を管理、利用する人間にとってとても便利な機能です。ここに私が話したかった商業的妥当性があります。クライアントは人工知能の使用用途に応じて各神経シナプスを切断すればよいのです。

もちろん人間に忠実なかわいい女の子の人工知能が欲しければそのまま使用すれば良いです。

f:id:meipuru_344:20170720072557j:plain

開発の妥当性

最後に開発の妥当性です

商業的妥当性と似ているかもしれません が、、、

基本的にそれぞれの独立ネットワーク(各感覚野)はそれぞれの分野の繋がりがそこまで太く無いのでそれぞれの分野で開発を個々に行うことができるのです

例えば脳の第一層(最下位)脳機能では
視覚
聴覚
嗅覚
感覚
味覚

の情報処理が行われていますが

それぞれは別々に作成することが可能です。
よって開発的にも妥当性があると言えます

次節:独立再帰ネットワークの構築

最後まで読んでいただき本当に有難うございました。
よろしければ意見など、コメントお待ちしています。
続きはまた……

大学の成績と研究室配属と

うちの大学の研究室配属の仕組みなんですけど


学部3年生で成績順で研究室が決まるみたいです


ちなみに僕は成績が良くないので(笑)


研究室は選べないです、他の大学だと面接とかもあるみたいですが


うちの大学は成績オンリーで決まるそうです


実力主義が売りみたいですから。。。。まあそれは良いとして


第一志望は人工知能系の研究室ですが


やはり、人工知能は今の時代のトレンドなので入れなさそうです


他を見てみると


研究室 専攻分野 研究分野
明石研究室 不動点理論、凸解析学 Hilbertの第13問題/集合値解析
入山研究室 計算理論 量子アルゴリズム/暗号理論
桂田研究室 マルチモーダル情報処理 音声情報処理/顔画像処理/対話システム
佐藤研究室 遺伝情報学 遺伝情報学/進化の系統学/情報理論
滝本研究室 計算機科学 プログラミング言語/言語処理系/ソフトウエア工学
武田研究室 ソフトウエア科学 プログラム言語論/分散計算機環境
田畑研究室 応用確率統計 カテゴリカルデータ解析
戸川研究室 非線形数学 非線形力学系の理論
富澤研究室 数理統計学 分割表解析/多変量解析
宮本研究室 離散数学 組合わせデザイン/符号・暗号の数理
渡邉研究室 応用情報理論 量子通信理論等


研究室を分類してみます

計算機系もしくは好きな研究をさせてくれる所

明石研究室 不動点理論、凸解析学 Hilbertの第13問題/集合値解析
桂田研究室 マルチモーダル情報処理 音声情報処理/顔画像処理/対話システム
滝本研究室 計算機科学 プログラミング言語/言語処理系/ソフトウエア工学
武田研究室 ソフトウエア科学 プログラム言語論/分散計算機環境


自分は興味ないが生徒に人気な研究室

田畑研究室 応用確率統計 カテゴリカルデータ解析
富澤研究室 数理統計学 分割表解析/多変量解析


自分は興味無い、他の人にも人気がない研究室

渡邉研究室 応用情報理論 量子通信理論等
佐藤研究室 遺伝情報学 遺伝情報学/進化の系統学/情報理論


暗号系、情報セキュリティ

宮本研究室 離散数学 組合わせデザイン/符号・暗号の数理
入山研究室 計算理論 量子アルゴリズム/暗号理論


今年からなくなる研究室

戸川研究室 非線形数学 非線形力学系の理論


単純に確率を求めると
四年生で人工知能について研究できる確率は
2分の5ですが計算機系の人気、統計系の人気を加味すると
暗号系、もしくは量子通信系に配属される可能性もそこそこ高そうです。


全ては三年生の前期の成績で決まるんですけどね。。。


さて、勉強してきます!

DeepLearning for Java (DL4J)の始め方(一発で動く!!!!)

んにちは、今回はQiitaとかにいっぱい書いてあると思いますけど
Java機械学習用ライブラリ
DeepLearning4Jのインストールについて書きたいと思います
具体的にはインストール、ND4Jのライブラリを使ってコードを実行するところまで書きます
自分はコードを実行するまでいろんなサイトを見て回ってとても苦労したので
このブログではこのページだけ見れば一発で導入が終わる丁寧な解説をしたいと思います
まず使うツールについて説明します

IntelliJ IDEA
コードを書くことから実行ファイルの出力まで、なんでもこなしてくれます
コミュニティー版で良いのでインストールしてください
f:id:meipuru_344:20170713044143p:plain

インストールするものはこれだけです
他は必要ありません
ただし、Java DevelopmentKitはもちろん必要です(笑)
(ちなみに自分はJDK1.8を使用しています)
またIntelliJはUIがWindowsMacほとんど一緒なので分けた説明はしません

新規プロジェクトの作成
それでは新規プロジェクトの作成をしましょう
f:id:meipuru_344:20170713044708p:plain
f:id:meipuru_344:20170713045118p:plain

新しいプロジェクトに入ると最初に必要なものがダウンロードされ
右下に何か出ると思いますので"Enable-Auto-Import"を押してください
そうするとmainディレクトリの中のApp.javaが実行できるようになるはずです
(App.javaが実行可能であればとりあえずここは大丈夫です!)

f:id:meipuru_344:20170713045409p:plain
緑色の三角が実行可能の証です

f:id:meipuru_344:20170713045501p:plain

Runで実行してください、HelloWorldが出てくるはずです。


pom.xmlについて
はい、これです
実はIntelliJMavenを使って自動ダウンロードをするためにこれは避けて通れません!
とは言ってもとても簡単です

f:id:meipuru_344:20170713045838p:plain

このpom.xmlMavenにどのライブラリをダウンロードして欲しいか伝えるために必要です!
今回はCPU環境のnd4jを使うことにしましょう
そのためには
f:id:meipuru_344:20170713050302p:plain

<dependency>
 <groupId>org.nd4j</groupId>
 <artifactId>nd4j-native</artifactId>
 <version>${nd4j.version}</version>
</dependency>

とコピーします
そして${nd4j.version}を 0.8.0  に書き換えてください
f:id:meipuru_344:20170713050725p:plain
すると外部ライブラリに大量のライブラリがダウンロードされるはずです
これらはnd4jを実行するために必要なのです


Hello ND4J!
実は自分の環境ではこのまま進めるとエラーに遭遇します(笑)
もちろん今からその対処方法を書きます
f:id:meipuru_344:20170713051344p:plain
行列を宣言してから標準出力にするとエラーが出ます。
これの対処方法は機械的ですが、、、、
pom.xml

   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-nop</artifactId>
      <version>1.7.3</version>
    </dependency>

と追加してください
f:id:meipuru_344:20170713051726p:plain

バージョンは1.7.3にしてください、最新バージョンだとなぜかうまくいきませんでした

終わりに
以上で導入終わりです、導入できましたか?
大見得切っておいてできなかったらごめんなさい;w;
以上で説明を終わります
最後まで見ていただきありがとうございました

f:id:meipuru_344:20170713052257p:plain