公開日:2018.11.30
更新日:
自動コーディング!?近い将来、プログラマーの仕事がなくなる??
この記事の目次(クリックで項目へジャンプします)
みなさん、はじめまして。コーダーのさいとうです。
大学在学中はディープラーニングについてかじっておりました。
さて、このディープラーニングは何か…ざっくりいうと人工知能の研究分野の一つです。
人工知能というと、「近い将来、〇〇(仕事)は人工知能に奪われる」なんて話をよく耳にしますよね。web制作においてもそれは言えてしまうかも…ということをディープラーニングの解説と合わせて紹介していきたいと思います。
ディープラーニング(深層学習)とは??
ディープラーニング(深層学習)とは
“機械学習の一種であるニューラルネットワークの中で多層構造の学習手法である”
何を言っているのかさっぱり分からないと思いますので数学的なことは省いて簡単な仕組みを説明します。
人間が自然に行っている学習能力をコンピュータでも再現しようとする技術や手法を”機械学習”といいます。その機械学習の一つにニューラルネットワークというものがあります。これは人間の脳の神経細胞(ニューロン)と、神経回路網(ニューロン同士のつながり)を模倣した数理モデルです。
そのニューラルネットワークの精度向上を図ったものがディープラーニングです。
従来の機械学習とディープラーニングの違い
人間は知識と経験からモノの判別を行います。
コンピュータも人間と同じで何かを判別するときには判別するための事前情報が必要です。
よくある例でいうと、りんごと青りんごの画像を見せられて、それぞれ判別しなさいと言われたら人間なら色ですぐにわかりますよね。これは記憶や知識という事前情報から判別できるわけです。
では、コンピュータに同じようにりんごと青りんごの画像を見せ、判別させるとします。
それにはまず、りんごと青りんごの画像をいくつもコンピュータに記憶(学習)させます。
ここで、従来の機械学習に他のりんごか青りんごの画像を見せてやっても判別はできません。
りんごと青りんごの情報があっても、そこからどうやって2つを判別するかはわからないからです。
そこで人間の手を加えます。「色の情報を特徴として着目しろ」というルールを与えることで、りんごと青りんごの判別することができるのです。
一方、ディープラーニングは違います。情報から自分で特徴を判断できるのです。
つまり、人間の手を加えずともコンピュータ自身で判断することでりんごと青りんごの色の違いに着目し判別できるのです。
ディープラーニングによる自動コーディング
さて、本題です。
今年1月に以下のサイトで、ディープラーニングによるHTMLの自動コーディングが紹介されました。
https://blog.floydhub.com/turning-design-mockups-into-code-with-deep-learning/
これは画像のみから、HTMLコードを自動生成するプログラムで、ほぼ元の画像と同じものが完成するそうです。精度はまだ100%ではありませんが、いずれほぼ100%の精度に誇るのではないでしょうか。また、CSSやJavascriptにも今後対応していけるよう想定しているみたいです。そうなってしまうと、近い将来デザインデータを与えるだけで全てコーディングが完了するコーダーの要らない世界がくるかもしれませんね。
人工知能の発達は人々から仕事を奪い脅かすと言われますが、そうではありません。
人工知能の発達によって従来の仕事はなくなるかもしれませんが、その分、人工知能を扱うための新しい、まだ予想しないような仕事が生まれてくるはずです。
コーダーに関しても人工知能をどう使いこなしながら仕事をするかという方向にシフトしていくかもしれません。
人間が面倒なことを「ロボットに任せてしまえ」というとこから人工知能の研究は始まっているはずです。人工知能にも向いていない分野はまだまだありますから、人間と人工知能がどうすみ分けながら共存していくかが大事ですね。