人工知能は、コンピューターウィルスと同じくらい誤解されている

人工知能がスーパーマリオをクリア

人工知能を使って、スーパーマリオをクリアする動画が公開されています。

NEATと呼ばれる遺伝アルゴリズムを使っているのですが、1000行足らずのコードでキレイに実装されており、とても感心しました。

「人工知能」という言葉が招く誤解

最近、人工知能に高い関心が寄せられ、ニュースのトピックによく上がるようになってきました。(車の自動運転や、音声認識で会話するSiriなど)

ただ、「人工知能」という言葉は誤解を招きやすいと思います。その言葉の響きは、「いずれ人間の仕事がなくなる」「自分の意思で動く」など、とかく妄想を掻き立ててくれるのですが、実際にやっていることは統計を取って、尤もらしい方を選ぶだけです。

例えば、MarI/Oはこんな感じで動いています。

目指すゴール

クリアするまで右に進み続ける。コインやアイテムを集めることはしない。

戦略

1. 右矢印は、ずっと押し続ける。他のボタンは「ランダムに」押したり押さなかったりする。これを、数千回繰り返しプレイする。(当然、こんな雑なやり方では、数千回程度繰り返したところでクリアできない)

2. 各プレイを見てみると、ゴールにより近づけたプレイとそうでないプレイがある。ゴールにより近づけたプレイに共通する操作(何秒後にどのボタンを押すか?)を見つける。

3. もう一度1からやり直し。ただし、他のボタンはただ「ランダムに」押すのではなく、見つけた特徴をまねして操作する。過去のどのプレイよりもゴールに近づき、まねるべき特徴がなくなったら、再び「ランダムに」押したり押さなかったりする。

これをひたすら鬼のように繰り返していると、いつかゴールに着く気がしますよね。

右へ倣え!前例を探せ!それがなかったら・・・ダメモトでやってみるしかない!

なんか、人工知能ってすごい保守的で残念な社員みたいです。(笑)

ですが、この残念な社員には素晴らしいポイントが2つあります。

・徹底的に前例を探してくれる

・タダ同然で働いてくれる

どちらも、人工知能に限った話ではなくコンピューター処理全般に当てはまります。人の限界を超えるビッグデータを、極めて正確かつ高速に捌けるコンピューターだから実現できるのです。

人工知能は、人間の仕事を駆逐する?

「人間が今やっている仕事は、いずれ人工知能に置き換わる」という風説がありますが、実際にそうなると私も思っています。

付け加えるなら、それは、何も人工知能に限った話ではないということです。コンピューターの応用分野が広がると共に、人間の仕事がなくなる状況は昔からある事です。セルフ方式のガソリンスタンドやネットバンキングなどがいい例です。

さらに言うと、「全ての」仕事が人工知能に置き換われるとも思っていません。

保守的で残念な社員だけで構成された会社は、時代の流れについていけないからです。しかし、この会社に優秀な社員(=生身の人間)が1人加わり、残念な社員達(=人工知能)を上手にコントロールできれば、優秀な社員1人分よりもずっと良い仕事が期待できます。

 

人工知能を研究中の私は、人工知能をこんな風に捉えています。

netshが難しいと感じる方には、NCSwitchがオススメ

WindowsタブレットやPCを日常的に持ち歩いていると、IPアドレスなどのネットワーク設定を頻繁に切り替える必要があります。移動する度に設定をいじるのは面倒なので、簡単にできる方法を探している方も多いのではないでしょうか?

簡単にできる方法をネットで調べてみると、「netsh(ネットシェル)使えばできるよ!」という記事がよくヒットします。netshはWindowsの標準機能の一つで、様々なネットワーク設定の取得・設定ができる”コマンドラインツール”です。

コマンドラインツールとは、「コマンドプロンプト」からコマンド(命令文)と呼ばれるテキスト入力を介して実行されるツールのことです。マウスは使わず、キーボード入力のみでコントロールします。コマンドプロンプトの作法やコマンドの使い方など、要求される予備知識が多く、初心者向けの機能ではありません。

コマンドプロンプト
コマンドプロンプト

 

「難しいことはしたくない。ただ、ネットワーク設定を簡単に切り替えたいだけなんだ!」という方には、netshよりもNCSwitchをオススメします。

ウィザード画面から簡単に操作できますし、ネットワーク設定以外にも、デスクトップの壁紙など、あわせて切り替えたい様々な設定(netshがサポートしていない設定)にも対応しています。

しかも、一度保存したネットワーク設定は、そのネットワークに再接続したタイミングで”自動的に”復元します。netshでバッチを組んだ場合、接続ネットワークが変わる都度、作ったバッチを手動で実行する必要があります。

難しいことはしたくないという方は、NCSwitchを使いましょう。