ディープラーニング転移学習(CNN)におけるグレースケール画像の取扱い(メモ)

通常のCNNRGBの3チャンネル入力で設計されている。

データ画像がグレースケールの場合どうネットワークを構築し入力するかというのが検討課題となる。本来であればグレースケールでオリジナルのCNNを設計すべきである。しかし、転移学習をしたい場合どうするか?

CNNのRGBの3チャンネルにグレースケールのデータを入力する方法が2通り考えられる。

① RGBのどれかの1チャンネルに0〜1の間の数値に正規化したグレースケールデータを入力し、残りの2チャンネルの値は0とする。

② RGBの3チャンネルに0〜1の間の数値に正規化したグレースケールデータの同じ値を入力する。

①と②学習精度の違いを確認するために、同じグレースケールデータを用いてそれぞれ学習を実施し認識精度を比較すると①>② となった。

また、別にカラー画像を画像加工ソフトを用いグレースケール変換を実施し、カラー画像データでの学習後の認識精度とグレースケール画像データでの学習後の認識精度を比較すると、グレースケール画像の方が悪くなった。

 一般的には、カラー画像のグレースケール変換は人間の視覚の感覚に合わせて、R,G,Bを重み付けした線形和で変換する。

 つまり、カラーからグレースケール変換すると情報は意図的に圧縮されてしまう。

「ディープラーニング・ビジネス」に対する違和感

ディープラーニング・ビジネスで「世界で勝てる感じはしない」

今月に入って、いつからかネット記事の見出しやFacebookの投稿に上記の日経XTrendへのリンクが目立っている。現在の日本のメディアでは、日本礼賛か日本落日のどちらかの記事が注目を引くということもあり、なかなかセンセーショナルな見出しである。それ以外にも、どこかの大学の特任教授による、「AIビジネスではもう儲からない」などとのFacebookへの投稿もあり、バズワードがパスワードとしての役割を終了するのが間近という雰囲気も醸し出している。

個人的には、この「ディープラーニング・ビジネス」というバズワード感いっぱいの言葉には非常に違和感を感じている。この発言したのは東京大学松尾准教授である。松尾氏はディープラーニングの第一人者ではあるが、企業側の人間ではないので、ディープラーニング自体がビジネスの対象になると考えるのも仕方がないが、そうではないと私は考える。ディープラーニング自体はデータから学習アルゴリズムだけであり、実際に価値を持つのはデータとその学習によって得られる新規機能であり、精度向上による高付加価値である。そもそも世界中のビジネスでAIが注目されているのはAI技術単体ではなく、既存のコアビジネスがAIによってどれだけ高付加価値、高度化、効率化されるかという面を有しているからである。正確に言うならば、「ディープラーニングによるブレイクスルーや、付加価値向上は、海外に比べて日本は遅れている感じがする。」と表現するのが良いのではないだろうか。

ディープラーニングという技術そのものを売り物として提供することは米国でもあまりビジネス化されていない(一部PaaSクラウドではある)。あえて言うならばディープラーニングではないがAI技術という意味ではIBMのWatsonがそれに該当するかもしれない。WatsonはAI技術のプラットフォームを提供するサービス・ビジネスである。ただし、Watonはディープラーニング以前のOld Style AIであり、IBMにとっての稼ぎどころは顧客向けにWatsonを仕立てるコンサルティングサービスである。では、米国やその他の国で話題になっているAIとビジネスとの関係は何であるのか、というと、これらの国ではAI技術は元からあるコアビジネスを高効率化したり、新サービスを支える技術して利用されているのがほとんどである。特に、AIに対する投資額が大きい、Google,Microsoft,Facebook,Amazonからもその傾向が読み取れる。

Googleは、AI技術を駆使しコアビジネスである広告表示の最適化の精度を向上させ、コンバージェントレートを上げている。また、検索機能、翻訳機能の精度向上にもAI技術を用いており、その結果としてポータルサイトとしての優位性ではダントツのトップになっている。GoogleはCloudサービスにおいても、画像解析APIや音声認識APIなど内部で活用している機能をAPIとしてサービス化しクラウドの付加価値を向上させている。

Microsoftは、WindowsへCortanaという音声認識機能を追加し、Skypeへ機械翻訳機能を追加し、PowerPointへの機械翻訳プラグイン追加など従来のコア製品群の高付加価値化にAI技術を活用している。また、次世代のコアビジネスと位置づけているAzure(クラウド)にもCognitive Servicesとして、顔認証API,音声認識API,画像認識API,など様々なAI技術を用いたサービスを追加している。

Facebookは2013年にFace.comというStartupを買収するなど顔認識技術に力を入れ、その成果がFacebook内での画像における自動顔識別機能につながっている。また、Google同様に広告表示の最適化にAI技術が活用されていると推測される。

Amazonは、従来からの機能であるユーザに対する商品レコメンド機能は代表的なAI技術の成果であり、先進的な取り組みである無人店舗AmazonGOを実現するためのカメラ画像認識や、AIスピーカーであるAmazon Echoを実現している音声認識、音声合成技術もAI技術である。

これらの例でわかるように現時点では、AI技術自体はツールであり、コアビジネスを支える重要な機能である。したがって、世界的に見れば単体でビジネスになるということは少ないと考える。

つまり、ビジネスへAI技術の導入に積極的に取り組みべきなのは、従来産業の研究開発部門なのである。これまでの技術で不可能であった問題点がAIによりブレイクスルーできる可能性があるか否かを早急に検討、投資し、自社の競争力を向上させるべきなのである。

ただし、AI研究に関する日本の優位性については様々な専門家が訴えているように危機的状況であることに変わりはない。その意味においても、ビジネスにおいて余力がある企業はコアビジネスを強化するためにもAIの研究開発に投資を集中すべきと考える。

 

TensorFlowとは

○ TensorFlowとは

TensorFlowはGoogleのAI開発チームであるGoogle Brainによって内部利用向けに開発され、その後、機械学習向けオープンソースとして公開されたライブラリである。最初の版は、2015年11月にリリースされた。それ以前にリリースされた他の機械学習向けオープンソースライブラリにはCaffe、Torch7、Chainerなどがあるが、TensorFlowは現在、世界中でもっとも利用されていると言うことができる。

 

○ TensorFlowでできること

深層学習の処理をプログラムで実装するためには、基本的には以下の処理フローをPythonなどのプログラム言語で設計、コーディングする必要がある。

【処理フロー概要】
1 ネットワークの接続、階層の定義
2 ネットワーク入力層へのデータ入力
3 ネットワークの重み線形和の計算
4 種々の非線形活性化関数の計算
5 出力と教師データから成る種々の誤差関数値の計算
6 種々の最適化アルゴリズムを用いた重み値修正量の計算
7 重み値の更新

これらの処理は誤差関数の計算や、最適化理論に基づいた最適化アルゴリズムの実装など、その分野の専門家でなければプログラムの開発が困難なアルゴリズムによって構成されている。仮に実用的かつ様々な課題に対応するプログラムをゼロから開発するとすれば、多くの時間と経験が必要となる。

通常、深層学習の動作には、大きく分けて2つのフェーズがあり、その第一フェーズはデータに基づく学習であり、第二フェーズは学習によって得られたモデルを利用した推論(認識、識別も含む)である。TensorFlowは両方のフェーズで利用可能であるが、ブラウザで動作するTensorFlow.jsやRaspberry Piやスマホで動作するTensorFlow Liteは既に学習が完了したモデルを利用した推論のみ、もしくは軽微な追加学習を含む推論での利用を念頭に開発されているため選択する際は注意が必要である。

TensorFlowで取り扱うことができる処理は、通常の数値計算、ベクトル・マトリックス演算、機械学習処理など様々であるが、本来の目的は深層学習の処理の簡易化である。近年、深層学習は急速に進展しているが、それらの基本となる技術がCNN(Convolutional Neural Networks)とRNN(Recurrent Neural Networks)である。日々、様々なアルゴリズムが開発されているが、それらはCNNまたはRNNを応用して実現されていると言っても過言ではない。TensorFlowはCNN,RNNを簡単に実現することができる。

機能面でのCNNとRNNの大きな違いは、時間の概念の有無である。CNNは多くの画像解析で利用されており、RNNは自然言語解析や機械翻訳、文章生成で利用されている。言語関係の処理は、言葉の前後関係、つまり時間的な順序が非常に重要であり、その前後関係を考慮した学習が必要になる。

 

○ TensorFlow導入

TensorFlowがサポートしてるOS環境は、現時点(2018年6月)では以下のOS(64-bit)環境である。

・Windows7以降のバージョン

・macOS10.12.6(Sierra)以降のバージョン

・Ubuntu 16.04以降のバージョン

また、TensorFlowは開発言語として主にPythonをサポートしているが、その他、Java、C言語、Go言語もサポートしている。

TensorFlowには通常のPC/ワークステーション、サーバで動作するCPU版とNVIDIA社のGPU(Graphical Processing Unit:画像処理ユニット)を搭載したPC/ワークステーション、サーバでのみ動作するGPU版(さらにGoogleのCloud TPUでのみ動作するTPU版もあるが、ここでは説明を割愛する)がある。学習する内容にもよるがCPUに比較しGPUの方が数倍〜十数倍の速度で処理される。少ないデータ量での学習を実行する、または推論だけを実行する場合はCPU版でも十分だが、大量のデータでも学習を実行する場合にはGPU版を推奨する。一方、GPU版を動作させるためにはNVIDIA社のGPUを動作させるためのCUDA(Compute Unite Device Architecture)という環境を構築する必要があり、これは初心者には非常に難易度が高いため当初からGPU版を利用することは奨めない。学習処理のプログラムはCPU版とGPU版でほぼ差異はないため、最初にCPU版で習熟、開発、試行し本格的に大量のデータを用いた学習を実施する段階にGPU版に移行するのが最も開発効率が良い。

TensorFlowを使うためには、サイト(https://www.tensorflow.org/install/)の手順にしたがって、各OS、言語に応じたTensorFlowをインストールする。ここでは、macOSにPython向けのTensorFlowをインストールする手順を例示する。Python環境を仮想化するツールによっても手順は異なるがここでは最も簡単なpipと呼ばれるPython向けパッケージ管理システムによるインストールを想定する。

Macでターミナルを起動し、以下のコマンドを実行する。

(Pythonのバージョン確認)

上のコマンドでバージョンが表示されない場合、下のコマンドを実行する

$ pip -V  # for Python 2.7

$ pip3 -V # for Python 3.n

(TensorFlowのインストール)

$ pip install tensorflow      # Python 2.7の場合

$ pip3 install tensorflow     # Python 3.nの場合

これでインストールが完了する。(非常に簡単)

 

TensorFlowのインストールを完了し、利用するにあたっては、いくつかサンプルを動作させるとともにサンプルコードを変更してみることを奨める。サンプルコードの取得、仕組みを理解するためには、以下のサイトを参照する必要がある。

TensorFlow-Develop-TUTORIALS(https://www.tensorflow.org/tutorials/)

上記は英語のサイトだが、MNISTについて日本語翻訳を@KojiOhkiさんがされているので参考として紹介する。

TensorFlowチュートリアル-ML初心者のためのMNIST(翻訳)(https://qiita.com/KojiOhki/items/ff6ae04d6cf02f1b6edf)

TensorFlowにはTensorBoardと呼ばれる学習状況の可視化ツールがある。TensorBoardはデータフローの可視化や学習の履歴(損失関数の変化など)の可視化、途中過程で生成される画像や音声の表示を行うことができる。これにより、学習モデルの最適化やパラメーターチューニングに対するヒントが得られる。 深層学習は、大量のデータを利用し繰り返し学習処理を行うことで、それらのデータが網羅する事象について識別、認識、生成が可能になる技術である。よって、結果を得るためにはWebや業務系システムの処理時間と比較して長時間が必要となる。従来は途中結果を逐次画面またはログファイルに出力し、多くの数値データの変化をスクロール等で視認し、学習が順調か、過学習等により中断すべき状態になっていないかを確認していた。しかし、TensorBoardにより、ファイルとして出力された内部ログを別処理で可視化できるため、学習曲線が逐次グラフ表示され一目瞭然になるので非常に効率的である(図1)。また、ブラウザからアクセスとなるため、設定によってリモートのPCやスマホからも途中経過を確認することも可能である。

図1.TensorBoardによる学習曲線表示

機械学習向けライブラリーを利用するためにはそれぞれのライブラリーのコマンド記法を習得する必要がある。簡易に利用可能になっているがコマンド記法は複雑でコード量も多い。そこで、CNNやRNNに関するコマンドをまとめて簡単なコードから利用可能としたKerasというオープンソースライブラリーが2015年にGoogleのエンジニアであるFrançois Cholletを中心するチームによって開発、リリースされた。Kerasは、MXNet,Deeplearning4j、TensorFlow、CNTK、Theanoなどの主要なライブラリーの上で動作することができるインタフェース的なライブラリーであり世界中で頻繁に利用されている。特に最近ではTensorFlowとの組み合わせでの利用が増えており、Githubに公開されているTensorFlowを利用したアプリケーションコードの大部分が、Kerasでプログラムを記述しTensorFlowで動作させると言っても過言でなくほど、この組み合わせは主流になってきている。また、2017年にGoogleのTensorFlowチームもKerasのサポートを決定しており、これら2つのライブラリーは相乗効果により更に普及することが予想される。

 

<参考>

An open source machine learning framework for everyone

https://www.tensorflow.org/

 

TensorBoard: Visualizing Learning

https://www.tensorflow.org/programmers_guide/summaries_and_tensorboard

 

Keras: Pythonの深層学習ライブラリ

https://keras.io/ja/

 

AIとアルゴリズム

近年、AIがめざましい進展をみせているが、その背景は機械学習によって自ら能力を獲得できるようになりつつあるからである。ここでは、その機械学習を実現するためにデータと同じぐらい重要になるアルゴリズムについて解説する。

 

  • アルゴリズムとは

AIとは何であるかという説明は昨今、様々な媒体で説明されているのでここでは省くことにする。では、アルゴリズムとは何であるか、Wikipediaでアルゴリズムと検索すると「アルゴリズム(英: algorithm)とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。」と記載されている。簡単にいうと設定された問題を解くための手順を数学的に表現したものである。AIのアルゴリズムというのは、人間の考え方や能力をコンピュータ・ソフトウェアを用いて模擬するために数学的に表現された手順であるといえる。

 

  • 脳が実現している知能

一口に知能といっても細分化の仕方によって様々な機能に分かれ、例えば判断、推論、予測、行動計画などに分類されるが、これらの機能の元になっているのは感覚器からの刺激に対する認識機能である。感覚器による正確な現状認識なくして、推論も予測も行動計画も間違ったものになってしまうということは理解できるだろう。近年、AIの進歩がいちじるしいのは、画像や音声といった人間の感覚器に相当するセンサーで検出した情報を正確に解析、認識できる技術の精度が向上しているからである。以降、この認識がどのように行われているかに着目する。

 

  • パターン認識と写像

人間の認識機能の多くは、一般的にパターン認識と呼ばれる技術に相当する。パターン認識とは、入力があって、その入力が何に相当するかを認識(出力)する機能である。同じ内容を数学的に表現すると、入力パターンをxとすると、認識結果はyに相当し、その関係はx空間に含まれるどの集合にyが含まれるかということを認識することに相当する。

我々人間の脳でもこのパターン認識という機能が実現されていると考えられている。たとえば、人間が画像を見た時、網膜には約1億3000万の受容体が並んでおり、受容体で感じた光の信号は約100万の視神経で脳に伝達される。それぞれの光の信号は画像のそれぞれの部分の光の明るさや色彩を信号(x)として感じる。信号(x)は、約140億個の脳神経(ニューロン)によって構成される大脳新皮質に伝わり、多くのニューロンを次々と伝搬し、その過程で、その物体を区別するための情報である「特徴量」が抽出される。人間は「特徴量」を用いて、その画像内の対象が特徴量空間のどの領域に属するかを認識し、その領域に割り当てられた対象名(y)を思い浮かべることができる。それが脳の認識機能の概要である。また、「特徴量」とは画像であれば対象を分類する上で他の対象と異なる形状や色の情報量である。

 

  • 「機械学習」の仕組み

認識についての詳細説明に入る。ここではわかりやすくするために信号(x)の全てが特徴量(x)であるとする。認識とは、その対象の特徴量(x)が特徴量空間のどの領域に位置するかを求め、それに対応する対象名(y)を求めることである。そのためには、特徴量空間を対象単位に分割する識別面f(x)を求める必要がある。人間は、様々な経験に基づき脳でその識別面を獲得しており、その脳の働きを「学習」と呼んでいる。また、コンピュータが、経験に相当する「データ」という情報と脳の処理に相当する「アルゴリズム」という手順で識別面を決定することを「機械学習」を呼ぶ。

アルゴリズムはどのようにして特徴量と対象の識別面を決定するのであろうか、数学的に識別面は様々な形式が考えられる。ここではわかりやすく、面ではなく特徴量x1,x2で定義される平面を2つに分割する直線を考える。一般的にこの直線を表す数式は関数x2=ax1+bと表現される。aは直線の傾き、bはy軸の切片と呼ばれる。この関数は学習アルゴリズムで決定される。

具体的に学習で決定すべき要素は、以下の2点になる。

・関数の形態(境界が必ず直線または平面とは限らない)

・関数のパラメータ(上記では傾きや切片に相当)

1点目の関数の形態は、平面(直線を含む)を表現する線形関数とそれ以外の非線形関数の2つがあるが数学的には線形関数が見通しよく、過去のアルゴリズム研究の蓄積が多いため多くの機械学習アルゴリズムでは線形関数を仮定している。したがって、機械学習アルゴリズムの働きは2点目にある、関数のパラメータを決定する、ということに集約される。

上記の数式のパラメータa,bは中学校の数学の問題にあるように線上の2点が与えられれば容易に求めることができる。しかし、現実問題ではそのような点が与えられることはない。また、犬の中にも、明らかな犬の特徴を有している犬もいれば、耳が立って尖っているというように、ある特徴量で見れば猫の特徴に近い犬もいる。また猫についてもその逆もある。つまり、特徴量で定義されるその境界は明確でないということである。機械学習はその境界を定義するパラメータを全データに基づき確率統計的にもっともらしい数値をアルゴリズムにより算出する。したがって、認識の精度を向上させるにはあいまいな境界に近い特徴量に関するデータを数多く必要とし、データを収集する際に重要となるのが特徴量である。特徴となる項目については機械学習では人間が定義する必要がある。機械学習では収集したデータから人間が特徴量を抽出し、特徴量と分類の境界の関係が線形関数であるという仮定のもとでアルゴリズムにより確率統計的にもっともらしいパラメータを求める、とまとめることができる。

 

  • 深層学習アルゴリズムの特徴

従来の機械学習アルゴリズムはある程度の精度でのパターン認識を実現可能としてきたが、人間と比較して細部において誤認識することが知られてきた。また、特徴量を設計者である人間が的確に選定する必要があり、選定される特徴量の妥当性によっても認識精度が左右されてきた。これらの問題をブレイクスルーしたテクノロジーが深層学習である。深層学習は機械学習の一手法であり、アルゴリズムの中心に脳神経の動作を模したニューロンモデルを多数、階層ネットワーク的に接続したニューラルネットワークを持つことを特徴としている。深層学習によって、従来の多くの機械学習が有していた、線形関数の仮定と、人間による特徴量の抽出という2つの要素を、アルゴリズムが適切に決定することが可能となるため、より高精度なパターン認識が可能になった。関数の形態については、多数の非線形素子を階層的に接続することで任意の非線形関数を近似することが可能であることが数学的に知られているため、非線形の動作をするニューロンを数多く接続したニューラルネットワークを用いた深層学習により、様々な形状の境界を獲得可能となった。また、特徴量については学習の過程でアルゴリズムが自動で分類に必要な特徴に対しデータの中から重みをつけ重要視するため人間が誤って特徴量を設定することはない。

一方で深層学習は、パターン認識に必要なほとんどのパラメータをデータによって決定するため精度を高めるためには従来の機械学習アルゴリズムに比較し、より大量のデータが必要とである。また、従来の機械学習アルゴリズムに比較して、学習に必要な計算量が多くなるため時間短縮を目的として同じ階層の多数の素子の処理計算を同時並行に計算することが可能なGPU(グラフィカル処理ユニット)のような並列計算機構が必要である。

 

  • まとめ

AIの中心となる認識機能は、認識に必要な領域境界を定めるパラメータを機械学習や深層学習のアルゴリズムによって大量のデータから獲得することで、実現される。これらのアルゴリズムを進化させるべく世界中で多くの研究が行われることで驚くべきスピードでAIが利用可能な範囲は広がりつつある。

 

 

<参考>

Wikipedia-アルゴリズム

https://ja.wikipedia.org/wiki/アルゴリズム

カラー版  神経科学―脳の探求』(ベアーコノーズパラディーソ著)

神経回路網の数理―脳の情報処理様式』(甘利俊一著)

深層学習(機械学習プロフェッショナルシリーズ)』(岡谷貴之著)

pix2codeを評価した

前回の投稿からだいぶ時間が空いてしまったが、その間にpix2codeの評価が進んだので概要を書いてみようと思う。

pix2codeの概要だが、コペンハーゲンに本拠を置くスタートアップUIzard Technologiesが開発したUIのスクリーンショットからWebアプリやiOSの画面表示コードをDeepLearningで出力するというソフトウェアである。これは、2017年5月にソースコードや論文を公開すると同時にデモをYoutubeにアップしている。

ソースコード → https://github.com/tonybeltramelli/pix2code

論文 → https://arxiv.org/abs/1705.07962

Youtube →

このコードを元に米国でDeepLearning向けのPaaS環境を提供しているスタートアップのFloydhubが2018年1月に自社のクラウドで動作な設定等や学習のためのデータを追加しソースコードを追加している(※こちらはWeb向けの学習コード、データのみである)

pix2codeのベースになっているネットワークアーキテクチャは、GAN(generative Adversarial Network)の実装オープンソフトのpix2pixである。pix2pixは2016年11月に発表されたソフトウェアであり、A種(例えば航空写真)の画像からB種(例えば地形図)の画像を2つの画像群の特徴とそれらの相関をDeepLearningで学習し、自動で出力を可能とするソフトウェアである。

pix2codeは、一方を画像ではなく、HTMLなどのMarkup言語にしているところが特徴になる。詳細な違いは、pix2pixの場合は、双方とも画像であるので、特徴量抽出と生成には2つのCNNを利用しているが、pix2codeの場合は画像と言語であるため、CNNとLSTM(Long Short Term Memory)を利用してる。

LSTMは時系列(順番)データを学習するRNN(Recurrent Neural Network)の実装として自然語処理に最もよく利用されるパターンであるが、自然言語処理で利用される場合、言葉のゆらぎがあるため学習の収束が遅いという実感がある。しかし、Markup言語はブラウザのようなコンピュータが人間の意図を表現するために利用される言語であるためゆらぎが少なく、利用されるwordの種類も少なく、表記種別と構造を表現する文法だけであるため、pix2codeでは収束が比較的速いのではないかと想定した。

評価は、当初、本家のソースコードを学習データで学習させ、評価画像を入力した場合の出力HTMLをブラウザに入力し、評価画像と比較することを計画した。

ところが本家のソースコードに付属しているReadmeを読むと、公開されているソースコードはUIzard Technologies社のクライアントを考慮し、一部を意図的に削除、書き換えしてあるという旨の記述がされていた。試しに学習させ、評価したところ、出力結果のDSLをHTMLやiOSなどの目的の言語に変換するCompilerソフトかけると、エラー出力されるという状況であった。

そこでFloydhubのソースコードを参考に本家のコードをいろいろ修正した。その結果、エラー出力はされなくなった。しかし、学習が不十分であり、公開されている学習プログラムのままでは学習データに対しては高精度出力が可能となるが、それ以外の画像データに対しては汎化ができておらず低精度出力になってしまう状態、いわゆる過学習になってしまうことが判明した。そこで独自に学習アルゴリズムについてハイパーパラメータチューニングを実施した。その結果Accuracyが95%近くまで向上するだけでなく、bleu値が、学習に利用しない評価用データに対しても、0.85〜0.91まで向上することを確認した。

学習が済んでしまえば、1画面あたり数秒でBootstrapに対応したHTMLファイルが出力されてしまうという手軽さである。

今後、マーズスピリット社は更に精度向上を図り、この技術を利用したサービス提供を企画している。Webデザイン企業でこのサービスを評価したい、活用したという企業が是非ご一報下さい。

※ bleu値(bilingual evaluation understudy):自然言語の機械翻訳で利用される指標であり、人間が翻訳した場合の文章と機械が翻訳した場合の文章の一致度を評価するために指標であり、人間の翻訳に近ければ近いほど1に近づく

 

技術者からみた技術的失業

現在、某企業との共同研究で深層学習で生成モデルを学習させるGANというアルゴリズムを使っているが、この技術はすごいと思った。単なるCNNやRNNでは認識や判別ができるだけで応用範囲は限定される(それでもかなりの範囲だが)と考えていたが、このGANはコンテンツを生成できるという意味で応用範囲はとてつもなく広いと感じる。

その研究というのは、詳細は言えないが簡単に言うと、人間の視覚ではなかなか判別できない事象を現在では科学的に可視化しているが、それにはコスト、時間、人件費がかかる、それを画像を学習させたAIに自動で描画させようとする研究だ。ちょっとやっただけで高精度で描画できることがわかった。

教師あり学習と教師なし学習の混合なので当然、その元になるデータや、目標となる良質な教師データは必要になる。教師データの質が高ければ高いほど学習後のネットワークは良質なコンテンツを出力できるようになる。その良質な教師データは共同研究チームのメンバーが専門性を活かして作成してくれている。その仕事は非常に丁寧で賞賛されるべきものである。

しかし、ふと考えた、このAIが完成し普及した後は、この技術者のノウハウ、スキルはAIによって再現されるので、この技術者の持つこの技術に対する付加価値は低下する、のだと。

これがまさしく、機械との競争であり、技術的失業なのだと。この技術者は他にもスキルはあるのですぐに失業ということはないが、少なくともこの作業にかける人件費は不要になるのでその分の何がしかの収入が減少する技術者はいるのだろう。

また、GANの応用でPix2Codeというアルゴリズムを開発してるデンマークのベンチャー(https://www.uizard.io)がある。先週、米国のディープラーニングクラウドを提供しているベンチャー(https://www.floydhub.com)がこのPxi2Codeを利用したサービスを開始すると発表した。このPix2CodeというアルゴリズムはWebやスマホアプリのUIのデザインし、その画像データを入力するだけで画面まわりのHTML等を自動で出力するというアルゴリズムである。近年の画面まわりの技術はHTMLだけでなくCSSやJavascriptなど様々な言語を組みわせてリッチな機能を提供するのが主流なので画像情報からどこまで抽出できるか興味があるがこれが実現できれば、開発工数がかなり削減できるとともに、クライアントとのトラブルの元になる操作性の評価が実際の画面を色々変更させながらできるのでUI/UXの向上にもつながることが期待できる。

※こちらについてはマーズスピリット社でも現在、評価しているので後ほど結果を投稿する

上記と同様にPix2Codeについても、これが普及すれば中途半端なコードしかかけないデザイナーやデザイナーがつくった画面イメージをコードに実装するだけのWebエンジニアは失業することになる。

これまでは、技術的失業というのはシンギュラリティが実現すると技術者ではなくそれ以外のホワイトカラー層に降りかかるものだと考えていたが、そうとも言い切れず、特に特化型AIでまず技術者層に発生し、その後AIの汎用化にともない他の層に広がって行くと考える。

技術者の自分としては、この競争から逃げるしかないと考えるが、競争を支配的に逃げるためには自らが持つ技術の限界を破り、この世の不可能という常識をAIを用いて壊しながら逃げるしかないと考えるこの頃である。

あなたはAIを歓迎しますか?

先日も投稿したが、2018年はAIが身近に活用されるか否かの鍵になる年だと考える。

AIの活用については、それまで人間が担っていた仕事がAIに置き換えられるため、「機械との競争」と言われており、その影響を危惧する人はAIの活用に否定的な発言をしている人もいる。その考えには国によって異なり、それぞれの事情が垣間見える。

それらについて解説した記事がMITレビューに紹介されていた。記事によるとスウェーデンでは、社会保障やセーフティーネットがあるため現在の仕事がAIに代わられても新技術適応への教育も含め国が整備してくれるので、国民の8割がAIによる自動化に対し拒否感はなくそれで国が強くなれば良いと考えているということである。それに比較し、アメリカではセーフティーネットが弱いため、変化を嫌い、AIによる自動化に対し否定的な考えの国民が多いようだ。

日本はというと、平成28年度版 情報通信白書によると、「好ましくない」に近い考えは2割以下だったということである。しかし、5割近くは「どちらにもあてはまらない」ということであり、肯定というわけではなく、大半は「様子見」または「興味がない」、「良く理解していない」ということかと考えらる。もっと、差し迫った状況にならないと判断できないということであろうか、これも日本の国民性を表している結果かと思う。

あなたはどう思います?

 

 

 

 

「自動化は怖くない」スウェーデン労働者の8割がAIを歓迎

While U.S. Workers Fear Automation, Swedish Employees Welcome It

2018年は真の「AI元年」になるか?

新しい年2018年を迎えた。

昨年2017年は、2016年から本格的に始まったAIブームが続き、ベンチャーだけでなく、大企業でもAI研究やAIベンチャーへの投資、買収の取り組みが始まり、遅れていた日本でもようやくAIビジネスが立ち上がる様子を見せた年であった。

研究の面では、日本は一周遅れ(実際は更に遅れが広がりつつあると思う)と言われているが、AIビジネスの面ではどうであろうか。

以前以下にも記述したように、ゼロ金利によるビジネス構造の変化や少子高齢化に伴う労働人口減少を補う形で銀行・保険業界では効率化を目的にAIを導入開始つつある。AIがどこまで使えるのかという話は別の機会に書くとして、AIが普及するということについて考えたい。

私は個人的には、AIの普及は、インターネットの普及以来の大変革を起こすと考えている。技術面でのインターネットの普及とのアナロジーでは、以下の通りと考えるが、普及のキーポイントは、キラーコンテンツ(キラーサービス)の登場だと考える。また、インターネットとの違いは、インターネット自体は我々の前に登場した時点ではそれを支えるネットワーク技術は大方完成しており、普及への技術課題は通信速度であったのに対し、AIはまだまだ研究途上であり進化の可能性が見込まれているに過ぎない技術であり、普及に際してはその精度向上が期待されるという点がある。

<インターネット>            <AI>

wwwの発明      → 深層学習の発明

様々なブラウザ普及     → CNN、RNNなどの普及

Webサーバ技術の普及 → Tensorflow,Chainerなどフレームワークの普及

キラーコンテンツ    → ??

 

しかし、i-modeや写メール、Amazon、Googleのように一旦キラーコンテンツ(サービス)が出てきて、一般に普及が始まると加速度的に普及し我々の生活をあっという間に変革してしまうのではないかと考える。

上にあげたサービスの内、最初の2つは主に日本ローカルの携帯電話+キャリアビジネスというハードに依存したビジネスであり、後者の2つは完全にアプリケーションだけによるサービスであるが、グローバルの広がりという意味では、いわずもがな後者が圧倒している。私もAIも同様の傾向があるのではないかと考えている、直近では、AI技術が普及する可能性があるキラーサービスとしては自律運転自動車とAIスピーカーが挙げられるが、これらはいずれもハードウェアに依存するコンテンツであり、それぞれのシステムの要件に依存するため、よほどの差別化ポイントがないかぎり乗り換えが難しく、いきなり席巻とまではいかないのではないかと考える。

個人的な希望としては、ウェアラブルデバイスと相性が良い、パーソナルヘルスケアに関するキラーサービスで世の中に普及して欲しいと考える。ウェアブルデバイスで計測したデータを専門家が学習・解析・分析し、デバイス単体で動作するAIアルゴリズムを開発しデバイスに配信することでデバイスローカルで個人の健康状態を判断することができるようになれば、リアルタイムで個人を特定することなく健康状態が判断できるため予防医学を幅広く実施可能となるとともに、深刻な状況の発生を予見できるようになるのではないかと期待する。

国内のベンチャー的には、インターネットの黎明期にはHP作成やCGI作成の費用がページ単価数十万円したり、簡単なメルマガサービスを立ち上げるベンチャーが株式上場をしたなどのように、現時点のAIベンチャーにおいても、ビジネスの成長期にあると考えられる。ただし、5年後にそのビジネスのバリューが上がるかどうかが長期の成長の鍵であり、そのためにもキラーサービスをいち早く開発したベンチャーが生き残るのではないかと考える。

 

ついに始まったAIとの競争

AI競争 揺らぐか「IT大手優位」 
カギ握る3つの問題

技術の進化は想像以上に加速している

前回の記事で、ついに”AIによって職を失う”ということが現実味を帯びてきたという内容を記載した。これは、世間一般に考えられているよりも、かなり速いタイミングで現実味を帯びてきていると言える。世界中で技術の開発競争が行われており、その結果だとも言える。

本日、その進化速度が更に速くなると思われるニユースが海外から入った。半年に一度6月、11月に行われているスーパーコンピュータのランキング「Top500」でこの11月に日本のベンチャー企業であるPEZY COMPUTERが開発した暁光(ぎょうこう)が世界で4位の計算速度になったということである。当然、日本では1位の計算性能である。おそらく、消費電力あたりの性能では世界1位になるのは確実であると思われる。

PEZY COMPUTERがスーパーコンピュータの開発を開始したのが2014年であるから、わずか3年強で世界有数の計算処理性能を有するスーパーコンピュータを開発したわけである。

これは、優秀な頭脳に、機会や資金、メンバー等のリソースを投入すれば、これまでの常識を遥かに凌ぐスピードで技術革新が可能となる例の一つとも言える。

他の例では、AlphaGOを開発し、直近では教師あり学習なしでそのAlphaGOを簡単に超越するAlphaGO Zeroを開発してしまったDeepMindもその一つである。

このような動きが世界中、特に、米中で活発に進められており、いつ我々の生活を大きく変える技術革新が行われるかわからないという今の世の中である。

スパコン世界ランキング、日本のベンチャーが4位に躍進 海洋研究開発機構の「暁光」

http://www.sankei.com/economy/news/171113/ecn1711130024-n1.html

 

ついに始まったAIとの競争

ここ数年、”AIによって奪われる職業”などの議論で盛んになっていたAIとの競争の可能性だが、ここ最近の国内の新聞記事やMIT Tech Reviewなどを見ると、ついに始まったなという感じを禁じ得ない。しかも、過去の経済の不景気では雇用に対する影響が少なかった、銀行業界やIT業界に先に影響がでつつあるというのが特筆すべきである。ある意味、この業界はAI技術に関する情報を数多く有しているため、その経営層はその可能性にかけていち早く競争に強い体力をつけてしまおうという戦略かもしれない。

3銀行大リストラ時代 3.2万人分業務削減へ

https://www.nikkei.com/article/DGXMZO22847550Y7A021C1EA3000/

 

「AIはすでに仕事を奪っている」、元グーグルの中国トップが明言」

講演者の一部は、AIが新しいビジネスや産業を生み出し、破壊する以上に多くの雇用を創出すると考えている。だが、李CEOはそのような楽観的な意見に賛同しない。

「多くの楽観主義者は、技術革命によってなくなる仕事があれば、新しく生まれる仕事もあるだろうと話します。AIによって雇用が創出される場所もあるでしょうが、それは例外だというのが私の意見です」。

Is Technology About to Decimate White-Collar Work?

自動化で沈みゆくインド、IT業界が斜陽産業になる日

IT産業を調査しているHfS研究所の2016年の予想によれば、インドでは2021年までに自動化によって48万人の雇用が失われるという。インフォシスのビシャル・シッカCEO(最高経営責任者)は今年3月、「座していたら、私たちの仕事は間違いなく人工知能(AI)に乗っ取られてしまう。これからの10年、いやもしかするとそれ以内に、現在の仕事の6割から7割はAIに取って代わられるだろう。そうならないためには自己改革を続けるしかない」と語った(シッカCEOは8月に辞職した)。

India Warily Eyes AI