1. HOME
  2. ユニリタマガジン
  3. 2015年UNIRITAマガジン
  4. 【2015年11月号】人工知能時代の今、 ソフトウェア技術者が考えなければならない事 ~ソフトウェアプログラマは必要なくなるのか?~

【2015年11月号】人工知能時代の今、 ソフトウェア技術者が考えなければならない事

~ソフトウェアプログラマは必要なくなるのか?~

近頃、人工知能、機械学習という言葉をよく耳にするようになりました。将棋やチェスなどで人間を打ち負かすようになった人工知能。コンピュータ自身が学習する機械学習の手法のひとつ、「ディープ・ラーニング」により、加速度的に進化を続けています。

このままコンピュータが進化を続けていくと「ソフトウェアプログラマの仕事は無くなるのか?」。本コラムでは、これからのソフトウェア技術者が、今ある業務の中でどの部分を人工知能や機械学習に置き換える事ができるのかを考察していきます。

Googleが社名をAlphabetという会社に変えました。正確には、変わったのではなく、新しい会社を作り、Googleがその100%子会社になっています。TechCrunchは、「なぜ変えたのか?」と言う問いについて、Googleの協働創業者ラリー・ペイジ氏の次のようなコメントを掲載しています。

Why the change? Well, Page wrote that the structure will allow the company to “run things independently that aren’ t very related” while also keeping “tremendous focus on the extraordinary opportunities we have inside of Google.”

Googleは検索エンジンの会社からさまざまな事業モデルをもったIT会社に生まれ変わろうとしています。

昨今人工知能が一つのブームとなっていますが、Googleの野望の1つにこの人工知能があります。ここ20年程を見ても、IT業界では数年に1回のペースで技術革新が起きています。90年中頃から後半にかけてはインターネットやjava、2000年初めにはXMLや仮想化、2000年半ばからはクラウドやスマートフォン、そして、現在の人工知能です。

これらの最新テクノロジーは、突然現れたかのように思われますがそうではありません。例えば、java、仮想化、クラウドを見ても、これはコンピュータ技術者たちが追い求めてきた仮想化の歴史をたどってきています。これらの技術が出てきたときに技術者は、「パフォーマンスが出ない」という反応が多かったと思います。しかし、今ではそんな反応をする人は少なくなりました。問題はまだありますが、それを超えた価値があるからです。そしてその価値は、技術者達の叡智の集大成でもあります。

木を見て森を見る

木を見て森を見る

前述の例は、「木を見て森を見ず」となっていたと思います。我々技術者は木を見る事が出来るので、一般の人たちとは違った反応をするのは当たり前です。しかし、この特徴を逆手にとって、「木を見て森見る」必要があります。クラウドの歴史はコンピュータが生まれた頃から始まっていたのです。そしてこれは、まだまだ続きます。

コンピュータプログラマが必要なくなる日。そんな時代はやってくるのでしょうか?「今後20年でロボットやコンピュータに代替される可能性の高い仕事」や「子供が大人になる頃、その65%はまだ存在しない職業に就く」など、人間の存在を脅かす記事が多い中、ソフトウェア技術者はもう一度この事に正面から取り組む必要があると思います。

ルールベースの意思決定

1992年、私は修士卒業論文で” The recognition of imperfect strings generated by fuzzy context sensitive grammars” を書きました。ちょっと難しく聞こえますが、簡単に言うと、「文法の間違っている文章を解析して、それを認識するのにファジー理論を使う」ということです。当時は人工知能冬の時代でしたが、コンピュータにある特定の分野ですでにわかっているルールを記述して、それを知識ベースとし、コンピュータに意思決定をさせようとしていました。そのルールをなるべく自然言語に近い形で書くために、自然言語の曖昧性をコンピュータに認識させるのにファジー関数を利用するというのが私の論文でした。

ルールベースは知識の集まりです。ルールが誤っているとそのルールから導き出した結果も間違います。したがって、ルールは完全になるまで、更新をしなければなりませんでした。例えば、言語解析をする場合には、文法などをルールとして記載しますが、そのルール通りに書けば、コンピュータはその言葉を理解してくれます。しかし、人間が話す言葉はルールを無視した曖昧な表現が多いため、なかなか理解してくれません。そういう曖昧性をどのように処理するかがテーマであったのです。

コペルニクス的転回

コペルニクス的転回

コペルニクスってご存知ですよね。1500年にもわたって信じられてきた天動説を覆した人です。人工知能の現場でもそれが起きました。前述したルールベースではなく、多くのデータを分析して、コンピュータが、自身で学び、特徴をつかんでいくことにより、物事を理解していく方法です。これは機械学習と呼ばれています。これがさまざまな分野で利用できるということで、現在の人工知能ブームとなっています。ルールベースでの判断ではなく、大量データを見て、学び、それにより判断するという方法が使われています。「コンピュータが仕事を奪う」の著書である新井紀子先生が「一テラを聞いて十を知る」と言う表現を使っています。

この方法は情報を取得しやすくなってきたために起きています。ネットが発達してきて約20年、この間にネットワークがいたるところにはりめぐらされ、帯域も広がりました。IoTを使って、特殊なデバイスを作成し、情報をとる事もできます。スマートデバイスからの情報は瞬時に世界中に共有されます。実はコペルニクスの時代にも望遠鏡が発達したことで、それまでの天動説の理論が発達した頃とは明らかに情報の量が変わりました。ガリレオは望遠鏡を使ってさまざまな星の観察をしたそうです。今まで観察していなかった星まで観察することが可能となり、天動説から地動説に大きく流れが変わっていきました。

プログラマの仕事はなくなる?

冒頭での「プログラマの仕事がなくなるか?」という疑問に戻りましょう。私の答えは、「既に一部置き換わっている」です。コンピュータプログラミングとは、コンピュータにやってもらいたい仕事をアルゴリズムとして書くことです。ルールベースはそのアルゴリズムを外から与える事で、プログラミング言語で書くコードを小さくし、アルゴリズムを変更したい時には、そのルールを変更・追加・削除することができる方法でした。ルールベースにおいてもすでにプログラマの一部の仕事は代替されていますが、機械学習により、そのアルゴリズムを書く必要がなくなったことで、さらにプログラマの仕事が代替されます。また、コンピュータは自ら学んでアルゴリズムを更新してくれます。したがって、既に、プログラマの仕事は大幅に置き換わる可能性があるということを意識した方がいいでしょう。マシン言語がjavaの様な人間が理解できる言語に置き換わり、そしてjavaは、コンピュータが勝手にロジックを作ってくれる機械学習に置き換わる可能性があると考えてみてはどうでしょうか?

今ある業務の中で、どの部分を置き換えることができるのか

さて、それではソフトウェア技術者は、どのように考えればいいのでしょうか?今ある業務の中で、どの部分は置き換える事ができるのか?先ずは、自分の頭で考えてみましょう。

「会計処理の科目の振り分けを人工知能で自動化する」というのを、先日、経理部門の人に話したら、「それ欲しい」という反応でした。「システムトラブルが発生した時に、どこに問題がありそうか予測する」、これはシステムに関わっている人だとみんな欲しいですね。トラブルが発生した時には過去のトラブルやインターネット上の情報を検索しているプログラマが多いと思いますが、コンピュータによって自動化することができるでしょう。

少し頭をひねるといっぱい出てきます。もちろん、それを実現するには、テラのデータが必要です。テラのデータを手に入れる方法を考えなければなりません。Googleが自動運転車を作って公道を走らせていると言われていますが、そのデータはGoogleのクラウドに保存され、知識として保有されていきます。そして、この知識が重要な資産となります。

システムを運用していく中で、資産が増えていきます。これはDevOpsでもあります。DevOpsは開発のDevelopmentと運用のOperationsを組み合わせた造語であるため、開発と運用の融合などのようにイメージされますが、その本質は「運用していく中で、システムの価値が上がっていく」ということを意味しています。

そして、ソフトウェア技術者が 考えなければならないこと

そして、ソフトウェア技術者が 考えなければならないこと

GEがインダストリアルインターネットというコンセプトで自社のハードウェアとクラウドサービスを組み合わせてサービス提供するコンセプトを考えて着実に実行をしていることはご存知だと思います。その開発のパートナーとして、アジャイル開発で有名な米ピボタル社が選ばれています。アジャイル開発やDevOpsは人工知能時代に必要な開発と運用の重要な概念となります。

IoTやスマートデバイス、SNSを使ってどのようにデータを収集するかを考える必要もあります。データの分析は1行1行プログミングしていると時間がかかるので、できるところは機械学習にしましょう。機械学習のソフトはプログミング言語と同じと言うような、コペルニクス的転回をしてみてはどうでしょうか?

今、ソフトウェア技術者に必要なのは、過去からの技術で重要なものを使いながら、自ら新しい技術を習得し、なるべく早く試して、実際に運用してみる事だと思います。

担当者紹介

戌亥 稔

執行役員
プロダクト事業本部 Be.Cloud グループ長
戌亥 稔

クラウド事業を担当している野球とゴルフ好きの2 児の父親です。ゴルフのスコアはあまり良くなりませんが、最近飛距離が伸びました。iPhone は2008 年に3G が出てから、ずっと使っているガジェット好きの技術者です。

会社情報に関するお問い合わせ

製品やIR以外の当社に関するお問い合わせ、本HPに関するお問い合わせなど、総合お問い合わせフォームより受け付けています。

お問い合わせフォーム