2015年7月27日月曜日

人工知能はプログラマの仕事を奪うか?

こんにちは、尾上です。関東は非常に暑いです。今年の夏季休暇は青森のねぶた祭りを見に行く予定ですが、あちらは涼しいことを祈ります…

今日(2015/7/27)のITProの記事でプログラマを志す君に伝える「仕事が無くなるリスク」という記事がアップされていました。

リスクの内容としては以下2点。

・プログラミングは日本社会では下流工程とみなされ過小評価されている。そのため給料が上がりにくい
・人工知能の台頭により、今後、職業プログラマの需要が激減する可能性がある

昨今、ディープラーニングというテクノロジーが普及したことで、本格的に人工知能が実用段階に移ろうとしています。
人工知能のコアテクノロジーとしては以下のものがあります。

・人工知能
・ディープラーニング
・機械学習
・自然言語プログラミングプラットフォーム
・予測分析のAPI
・画像認識
・音声認識

今までも機械学習、ビッグデータなどもバズっていたが、使いこなすには専門の知識を持った人材(データアナリスト)が必要であり、いまだに日本の一般企業での普及には至っていないですが、世界規模でみれば、人工知能の企業活動への活用は活発化しています。
機械学習のランドスケープ調査(http://www.shivonzilis.com/machineintelligence)によれば、人工知能を用いたベンチャーが提供している企業活動に利用できるサービスの業務範囲には以下のようなものがあります。

・販売
・セキュリティ/認証
・不正検知
・人事/リクルート
・マーケティング
・個人秘書
・BIツール/BIシステム

上記ランドスケープの中にはプログラミングは含まれていませんが、プログラミングの仕事は人工知能に奪われるのでしょうか。

ITProの記者は簡単な動作確認程度のプロトタイプのプログラミングは人工知能が代替できるようになるのではないかと予測していました。それは確かに実現可能かもしれません。

しかし、これからの日本社会では労働人口は確実に減るので、簡単な作業は積極的に省力化していくべきです。人工知能の技術がそこまで発達してくれるのであれば、それは歓迎すべきだと思います。

また、動作確認程度のプログラミングができるようになったからと言って、それはプログラマの仕事がなくなるというリスクには当たらないと思います。

なぜなら、簡単に動くものを作るのはそんなに大変な仕事ではなく、バグが無いように作るだとか、今までにないものを顧客の要求に合わせて言語を組み合わせたり、時には言語自体も作ることで実現していくという作業のほうがプログラミングの作業としては重要な部分であるということだからです。

「動けばいい」というレベルで実装をするという話でいうと、私が昔、経験した話として中国のSIerに発注したときに、彼らの成果物のプログラムはエラーになる値を入力しても必ず成功するように記述(リターン値に固定値が入力してあり、如何なる場合も正常終了する)してあり、確かに動きはするが、そうじゃないだろ?とやり取りしたことがあります。

人工知能が実現するシステムもこれに似たことが起きると思います。

人工知能の現代の課題の一つとして概念の抽出はできるが、意味との関連付けが教えてもらわないとできないという課題がまだ残っています。(シニフィアンとシニフィエ

例えば猫を見て猫というものの概念(ニャーと鳴く、四足で歩行する、トラ、ぶち、三毛などの毛色が存在する)はわかるが、それらの概念に相当するものを猫と呼ぶということは誰かから教えてもらわないと猫というものを分かることはできません。

それと同じように何が正しい仕様なのか、どのように動くのがあるべき姿なのかということは簡単な仕様書からでは読み解くことはできず、そこを誤解無く読み取らせることが出来るようにするためにはあらゆる条件について記述しなければならず、その行為自体がプログラミングではないかというものになると思います。先ほどのSIerへの発注作業についてもこういう仕様で動く、このパターンはエラーになると様々な指示を出す必要があったということです。(そんなことはしたくない、それをするぐらいなら自分でやった方がましに思えてくるが。)

今の人工知能が得意なことは特徴量の抽出であって、そこにどういう意味を見出し、意味づけするかは人間の課題なので、人間が扱うシステムの構築を人工知能が行うというようになるには、まだ時間がかかる…というか、人工知能を教育する作業が非常に面倒くさいのできっと誰もその作業はやらないだろうと思います。

自己プログラミングが出来るような人工知能が仮に出来たとして、そのときはいわゆるシンギュラリティの問題の方が深刻になるときだと思うので、プログラマの職が無くなるとかのレベルの話ではなく、人類の仕事が無くなるということを心配した方が良いときかと思います。

上述したように現在の人工知能が出来るようになったこととして、特徴量の抽出というものがあるので、システム管理の業務に活かすとしたら、障害の予兆検知や不正アクセス検知などの分野で使えると思います。

0 件のコメント:

コメントを投稿