その他

プログラマーが人工知能(AI)によって職を奪われるという噂は本当?アプリ開発者が検証してみた

更新日:

AI

プログラマーは人工知能(AI)の発達によって真っ先に職を奪われると言われています。

確かにロジカルに組んでいけるプログラミングという作業はAIが得意とする分野のため、早いうちに職を奪われそうなイメージです。

同じく実現が近いと言われている自動運転と合わせて考えてみたいと思います。

プログラマーの作業内容

実際に計算結果を出すためのプログラムは言語による書式さえ分かってしまえば法則通りに書くことができます。

var x = 1 + 1;
console.log(x);
2

これを応用してAIにやらせれば「どんなに複雑なプログラミングもこなせるに違いない」とか「AIの方がミスもないし、確実でしょ」と部分的に聞きかじった浅い知識で将来プログラマーは職を失うことにされてしまいました。

ところが実際はロジック通りにいかないことが多いというのはプログラマーなら誰もが経験しています。逆にロジック通りにいかない部分をいかに調整するかという部分にプログラマーの手腕が問われ、多くの時間が割かれているのです。

例えば「画面操作の処理が特定の条件で拾えない時がある」「ある手順を踏んだ時だけキャッシュがクリアされない」など人為的な問題だけではなく、システム的なバグも含めて日々さまざまなイレギュラーな対応をしているのがプログラマーだったりします。

自動運転について

もうすぐ自動運転が実現されると思っている人も多いようですが、現実はかなり苦戦しています。

日産が「自動運転」という言葉を軽く使った挑発的なCMを流したこともあってあまり車に詳しくない人が誤解してしまっているのも原因かもしれないです。プロパイロットよりアイサイトの方が先行してますし、ACCくらいで自動運転を謳うなんておこがましいです。カルロス・ゴーンの件だけじゃなく、最近の日産はいろいろと迷走しています。

アメリカでUberが自動運転の実証実験中に死亡事故を起こしたことがニュースになりました。また、AppleやGoogleが自動運転の開発から撤退しています。

普通に道路を走って信号で止まるだけなら簡単に実現できそうに思えますが、実際の運転はあまりにもイレギュラーな要素が多いのです。

例えば右折時や高速の合流などタイミングを合わせるだけではなく、譲ってくれた場合に素早く判断して進むといった対応が必要だし、譲ってくれそうだったけど、やっぱり流れたからやめとこうって感じで進んでしまう場合もあります。その場の状況判断だけでなく、雰囲気や空気を読んだり、未来を予想した上で総合的に判断しなければなりません。

センサーが付いているので衝突する危険性はありませんが、いつまでも合流できなかったり、進んだり急に止まったりとガクガクした動きになってしまう可能性がありそう。

運転をしていると「隣の車線の車がこっちに入りたがってるな」とか「あの車、駐車場から出てきそうだな」といったことを常に考えているもの。こういった予測はAIにはまだ難しいかもしれないです。

ヨーロッパでよく見かける信号の無い円形の交差点、ラウンドアバウトもAIにとっては難易度が高そうです。それ以前にもありましたが、日本でも2014年9月1日から本格的な運用が開始されています。

休日のショッピングモールや飲食店、道路工事には交通整理をする人がいます。このような係の指示も分かりにくい場合があり、人間でも判断に迷うことがあります。

以前わき道の駐車場から出た道路で工事をやっていることがありました。交通整理員の指示に従って道に出たところ、タイミングが悪く対向車が来てしまいました。仕方なく少しバックしてやり過ごしたところ、数台通過した後に路線バスが来てしまい、後続車に注意しながら大幅にバックしてギリギリですれ違うことになります。このように交通整理をする人が判断ミスをするというケースも考えられます。

もちろん、将来的には道路工事や交通整理もAIがおこない、自動運転車と連携がとれればこのような問題は解決される可能性はありますが、そこまでいくのは並大抵の進歩ではありません。

複雑な要素が絡み合っている時の判断はAIよりまだまだ人間の方に分があるのです。

また、真面目なAIくんが法定速度を守ろうとしても実際は+10kmくらいで流れていることが多いのでトロトロ走る迷惑な車となってしまいます。自動運転を実現するためには実態に則した法整備も必要となります。

プログラミングにもイレギュラーな要素が多い

チェスや将棋の対戦でプロがAIに負けたというニュースを聞いたことがあると思います。

脳科学の先生によると現在のAIは何かに特化していれば人間を上回ることができますが、イレギュラーな要素が多かったり総合的な判断を求められるケースを苦手としているそうです。

自動運転同様、実はプログラミングにもイレギュラーな要素が多く、AIに任せられるようになるまではまだまだ時間がかかりそうです。

cssひとつ例にとってみてもpaddingの見え方がiOSとAndroidで異なる場合があります。まったく同じ見え方になるよう調整するか、許容範囲内としてそのままにするかは人間でも意見が分かれるところです。

パソコンやスマートフォンは機種毎にハードが異なるため、互換性を保つようプログラミングして動作テストをしなければなりません。古いハードやOSをどこで切り捨てるかという判断も必要になります。

また、ハードやプログラムを動かすためのソフトウェアにはバグが存在することも多々あります。プログラマーはそれらを回避するようなコードを書いています。

プログラムというものは公式なルールに則って書けばいいというものばかりではありません。効率化して処理速度を上げたり、バグを回避するためのノウハウがあったりします。

プログラマーが人工知能(AI)の発達によって真っ先に職を奪われると考えている人は実際にプログラムを組んだことのない人か、軽く触っただけで分かったつもりになっている人の妄想ではないでしょうか。

まとめ

事務的な計算やHTMLで言えばペラページのような小規模なものは早い段階でAI化されていってもおかしくはありません。

しかし、プログラマーがAIによって真っ先に職を奪われるかと言えば少々疑問が残ります。

マイクロソフトやApple、Googleなどの企業がAIによるプログラミングを実現するために力を合わせて取り組まない限り、他の仕事よりプログラミングだけが特別早くAI化されるようなことは無いと思います。

しかもAIが発展したからと言って完全に自動でプログラムが作られて運用されるという使い方は難しく、最初は補助的または部分的にAIにプログラムを組ませるようになるはずです。そのための準備や完成したプログラムのチェックやテストといった仕事はプログラマーでなければできません。

SEやプログラマー、または将来目指している人は急激に仕事が無くなることはありませんので安心してくださいね。少なくともAI自体のプログラムを組むという仕事は残るはずです。

-その他
-

Copyright© Workerブログ|仕事を続けるための工夫 , 2020 All Rights Reserved Powered by STINGER.