「~激論!AI時代の幸せな生き方とは?!~」について

久しぶりにこの動画を見返してみました。2回くらい。

落合陽一さんや堀江貴文さんがAIについてどう考えているのかを確かめたいと思ったからです。

印象に残ったことをつらつらと書きます。

まず、「AIは知能をもつのは難しいのでは?」という疑問を持つ人が多いとおもいますが、例え知能を持たないとしても、

深層学習のような条件反射的に解くAIが湯水のように大量にあれば、それは十分シンギュラリティと呼んでよいだろうと思いました。

なぜなら、世の中の仕事の大半はあるパターンによって解決できるものだと思うからです。

深層学習のモデルを作成するのは人間の仕事だと思いますが、将来的にインプットとアウトプットを用意すれば、

最適なモデルを自動生成することができるだろうし、一度できたモデルは流用することができるので、

モデルが蓄積されればされるほど、モデル作成すらやらなくてよくなるでしょう。

そして、すごいのは、このモデルは世代を超えることができるのです。自分たちが作成したモデルを子供達に受け継がせることができます。

例えば、「生体データ」がインプットで「投与すべき薬」をアウトプットとするAIを作ることができれば、子どもたちは薬剤師になるために勉強しなくても、

そのモデルを使用すればよくなります。これは薬剤師の判断能力が継承可能になったということです。

こうなると、教育は変わらざるをえないでしょう。

人間の定義が変わるという二人の言葉が心に残りました。

Machine Learning 15minutes

「第22回 Machine Learning 15minutes!」に行ってきました。

深層学習の研究者や、元googleの機械学習エンジニア、ロボットエンジニアなどなどいろいろな人が登壇されていましたが、

その中で一際目立ったのが人間中心設計専門家の羽山さんでした。

スライドの内容がとても分かりやすく、プレゼンもうまいので、

気づいたらプレゼンが終わってしまったと思うくらいに話に引きこまれました。

以下がそのスライドです。

 

羽山さんは他のイベントでモテについての発表もしているのですが、こちらもとても面白かったです。

「モテの高みの先に広がっていたのは、寂寞とした砂漠だった。」

どいうことか気になる方はぜひスライドを見てください。

 

人工知能とブロックチェーン

人工知能とブロックチェーンについて分かりやすく解説している動画があったので、紹介します。

印象に残ったのは動画の24:20あたりのスライドでSirajが解説しているOpenMinedの仕組みです。

データサイエンスをしたいけど、データがなかなか手に入らないため、モデルの訓練ができないというのはよくあると思います。データを提供する人にとってはプライバシーが気になりますから、、、

そんな問題をOpenMinedは解決しようとしています。

データがもっとオープンになれば、人工知能の活用が進み、新しいサービスを提供したり、作業を自動化することができると思うので、OpneMinedの今後の動向に注目していきたいです。

OpenMinedのgithub
https://github.com/OpenMined/Docs

スマートコントラクト

ブロックチェーンの勉強をしていると、スマートコントラクトという言葉が出てくるのですが、
これがいまいちイメージが湧きにくいです。

スマートコントラクトの例として自動販売機がよく挙げられますが、それでもピンと来ません。

ということで以下のサイトを参考にして、簡単なスマートコントラクトを書いてみました。

https://book.ethereum-jp.net/first_use/contract.html

簡単にいうと、スマートコントラクトというのはオブジェクト指向のクラスのようなもので、クラス変数とメソッドを持っています。

今回はSingleNumRegisterというクラス(コントラクト)を作成しました。
クラス変数は整数値を格納するものが1つ。
メソッドはクラス変数を書き換えるものと読み込むもので2つ。

コントラクトの実行までの流れは以下の通りです。

1.コントラクト・コードの作成

2.コントラクト・コードのコンパイル

3.「Contract」アカウントを作成

4.スマートコントラクトへのアクセスと実行

1~4をやってみると最初よりはスマートコントラクトのイメージが湧いてきました。

例えば、雇用契約をスマートコントラクトで表現するとすれば、
クラス変数には契約内容を格納する変数(String型)と、同意するかどうかの変数(boolean型)を用意し、
メソッドには読み書きできるものを用意すればよいのかなと思いました。

ただ、その場合誰が採掘してくれるのだろうかという疑問は残りました。

スマートコントラクト以外では、
Dappsにも興味があるので、以下のサイトでゾンビと一緒に勉強しようと思います。

https://cryptozombies.io/jp/

ベイズ推定

ベイズ推定は個人的に面白い考え方だなと思うので、今日はこの話をします。

ベイズ推定とは「今までの経験と、新しい情報からある事象の確率を推定するもの」です。

例えば、あなたがお医者さんだとします。あなたの目の前には患者さんAがいて、あなたはAさんが健康が否か判断する必要があります。

1. 今までの経験
・診察に来る人の8割は健康、2割は不健康(よって現時点ではAさんが健康である確率は80%)
・健康な人のうちで喫煙者は4割存在する
・不健康な人のうちで喫煙者は8割存在する

2. 新しい情報
あなたはAさんに喫煙しているかどうか聞いてみました。すると、喫煙していることがわかりました。

3.確率推定
今までの経験と新しい情報からAさんが健康である確率は約67%となりました。

今までの流れを図でもう一度解説します。
青は健康エリア、オレンジは不健康エリアです。
①は喫煙エリア、②は禁煙エリアです。

新しい情報が来る前はAさんが健康である確率は80%でした。
上の図でいうと、青①②とオレンジ①②の面積の割合が4:1だからです。

そして。Aさんが喫煙してるという情報が得られたことによって、起こりえるのは青①かオレンジ①です。
青①とオレンジ①の面積の割合は2:1です。
よってAさんが健康である確率は2/(2+1) = 0.666…より、約67%です。

最初80%であった確率が新しい情報を得たことで、約67%に更新されました。

これがベイズ推定の考え方です。

参考文献↓

gensim

自然言語処理のプログラムを書くなら、gensimというライブラリがとても便利です。

例えば以下のような分かち書きされた2つの文章があるとします。

texts = [[“羽生”, “竜王”, “が”, “藤井”, “五段”, “に”, “負け”, “ました”],
[“羽生”, “さん”, “は”, “金メダル”, “を”, “取り”, “ました”]]

 

この文章を辞書に登録するのは2行で完了してしまいます。

from gensim import corpora
dictionary = corpora.Dictionary(texts)

辞書の中身は以下のように、単語ごとにIDが振られています。

{‘が’: 0, ‘に’: 1, ‘ました’: 2, ‘五段’: 3, ‘竜王’: 4, ‘羽生’: 5, ‘藤井’: 6, ‘負け’: 7, ‘さん’: 8, ‘は’: 9, ‘を’: 10, ‘取り’: 11, ‘金メダル’: 12}

 

bag_of_wordsを作成するのも簡単。

bows = []
for i, text in enumerate(texts):
bows.append(dictionary.doc2bow(text))

bowsの中身は(ID, 出現回数)となっています。

[[(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1)], [(2, 1), (5, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1)]]

 

昔、大学での自然言語処理の授業では、rubyを使って文章分類のコードを作成しましたが、
その時はbag_of_wordsを作るための関数を自分で定義していました。
今なら絶対pythonとgensimを使いますね。

自然言語処理がしたいという人はぜひ活用してみてください!

Sawyer君

「渋谷にコーヒーを淹れてくれるロボットがいる!?」という噂を聞いたので、今日行ってみました。

場所は渋谷モディの地下1階H.I.S.渋谷本店内。

いました。

Sawyer君です。

カップを持って、

コーヒーを淹れて、

持ってきてくれます!

Sawyer君にはダイレクトティーチングという特徴があるので、
この動作はプログラムせずに設定したのだろうと思います。

こうなってくると人はロボットのサポート役にまわるしかないですね。

これから先ロボットの活用範囲が広がると、
今まで当たり前のように人がやってきたことに対して、
ロボットを使うという選択肢が出てくるでしょう。

そうすると、ロボットより人件費が安いから雇われている人は悲惨だなと思います。

ロボットのコストが低下すればするほど、自分の給料を下げるしかないからです。

人にしかできないことは何だろうと危機感を感じている間も、Sawyer君は淡々と作業をこなすのでした、、

量子アニーリング

最近量子コンピュータの勉強会に参加しました。復習のために内容を書いてみようと思います。

1.アニーリングとは

焼きなまし法です。コスト関数の大域的最適解を求めるための手法です。アルゴリズムは以下のとおりです。

① 温度パラメータTを設定

② 条件(1)または(2)の時、パラメータを更新する
(1) コストが減少する時
(2) コストは増加するが確率P(T)でパラメータを更新する

③ Tを減少させる

④ ②〜③をTが指定された温度以下になるまで繰り返す

2.量子アニーリング

量子版焼きなまし法です。温度の代わりに量子効果を変化させることで、大域的最適解を求める方法です。

3.問題を解く方法

(1)解きたい組み合わせ最適化問題を見つける
例)巡回セールスマン問題
(2)イジング模型に落としこむ
(3)イジング模型の基底状態を求める

量子アニーリングは入力が実数のものを取り扱うことはできず、二値のものしか取り扱うことができません。巡回セールスマン問題ではあるノードを通過するかしないかの二値で扱うことができるので量子アニーリングで扱うことができます。そして、この特徴はボルツマン学習と相性がよいらしいです。ボルツマン学習の知識が殆どないので、勉強しようと思います。

ブロックチェーンの問題

先日、ブロックチェーンのイベントに行ってきました。

海外のブロックチェーン企業の事業内容やスマートコントラクトについてのお話を聴くことができました。

そこで感じたのは、ブロックチェーンにはまだまだ問題点があり、そこをいかに解決するかというのが海外で注目されているということです。

その問題というのは、スケーラビリティとセキュリティです。

①スケーラビリティ

ビットコインで扱える取引量は3tps(取引/秒)であり、VISAカードの2000tpsと比べてとても小さい値となっています。この問題を解決するために、ZILLIQAという会社は独自のブロックチェーンを開発しています。このブロックチェーンであれば、約2500tpsを実現するそうです。

詳細はhttps://www.zilliqa.com

②セキュリティ

スマートコントラクトの脆弱性を狙った事件としてはTheDAO事件が有名でしょう。Quantstampは、この脆弱性を発見する監査プロトコルを作成しました。

詳細はhttps://quantstamp.com

 

ブロックチェーンには世の中の構造を大きく変える力があるため、ついついそこだけ注目してしまいがちです。しかし、ブロックチェーンの技術にはまだ未熟な部分があります。ブロックチェーンの活用は長い目で見る必要があるでしょう。

トークンエコノミー

最近ブロックチェーンのイベントに行ってきました。ALISのCEO&CTOが登壇されていました。

ブロックチェーンの仕組みやICO、スマートコントラクトなど様々なお話があったのですが、特に印象に残ったのがトークンエコノミーでした。

トークンエコノミーとは貨幣の代わりとなるもの(トークン)を利用した経済のことです。

ALISの場合はALISトークンを発行しており、このトークンは良質な記事を書いた人や良質な記事をいち早く見つけたひとに配当されるようになっています。こうすることで、閲覧者は良質な記事を必死で探すようになり、良質な記事の作成者は評価されやすくなります。そして、コミュニティが評価されるとALISトークンの価値が上昇し、記事の作成者と閲覧者の両方に価値が還元されます。

ALISの仕組みで素晴らしいと思うのは、ユーザーが自発的にコミュニティを盛り上げようとする仕組みであることと、コミュニティ内で蓄積された評価データをコミュニティ外で利用することができるというところです。

トークンエコノミーをうまく利用すれば、今までの経済では隠れていた価値に光をあてることができるのではと思うので、引き続き情報収集をしていきたいです。