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を用いて壊しながら逃げるしかないと考えるこの頃である。

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つの問題

汎用人工知能実現に向けた2つのキーファクタ

私は仕事柄様々な文献を参照しているが、その過程で、現在、汎用人工知能実現に向けたキーファクタは以下の2つではないかと考えている。

1.マルチモーダル

2.生成モデルの構築

前にも書いたが、マルチモーダルとは各感覚器からの入力を上位層で、同じ抽象概念に結びつけることである。別表現では、複数の種別の情報で同じ抽象概念を持つものを統合化することとも言える。人間は、マルチモーダルの度合いが高まれば高まるほど、その概念、物体に対する理解が高まると考える。逆に言えば、「理解」とは、その抽象概念を様々な具体例で表現できるということである。マルチモーダルで学習をするには自律性が不可欠であり、そのためには生成モデルの構築が必要と考える。

 これまでの脳神経科学、ベイジアンネットワーク理論、ニューラルネットワークの研究から、人間の認知過程には、「認識モデル」と「生成モデル」が深く関わっていることがわかってきた。

それぞれの関係を具体的に示すと。

  認識モデル  この物体・概念は、これはこういうものだ(認識)

  生成モデル  物体・概念の認識が正しければ、これは振る舞うはずだ(確認)

という関係にあり、これらの2つのモデルは学習することで精度を高めていく。その学習は連動していて、連動することで、自律的に学習することができると考える。

その学習過程をわかりやすく例えると、try&errorである、try&errorの本質は、脳内において対象の特徴・概念を行動・働きかけを通じて認識し、認識することで適切に行動・働きかけが可能となるように生成モデルを構築し修正することである。

この活動を意識的にかつ組織的に実行しているのが「PDCA」と言える。P(プラン)は、ゴールを想定し、現在と、ゴールとの差を認識し、そこに至る過程をモデル(通常は計画)として生成する。粒度に応じてブレイクダウンしモデル化する。D(実行)段階に応じ、C(チェック、認識)し、その誤差を元に、A(アクション)でモデルを修正する。

現状の人工知能は認識モデルの構築が主となっているが、今後、様々な概念を守る地モーダルで自律的に学習により獲得し、より拡張、高性能、高精度化していくためには、生成モデルの技術の進展が必要不可欠考えている。

企業にて誰がAI化を担うか

ブログで以前にも書きましたが、今はAIブームということで、ちょっとした業務システムを構築するような感覚で特化型AI(以降AI化とする)の採用を考える経営層が多いようです。これは伝聞ではなく、現実に弊社(小規模企業にも関わらず)に様々な分野の企業から自社向けにコア業務をAI化できないかという打診があります。その中にはご希望が弊社の技術分野と一致しお手伝いさせていただくところまで行く案件もありますが、一致せず最初の段階でお断りさせていただく案件もあります。そういった交渉をしていく過程で気になった点があります。それは、AI化を日本独特の”SIer文化”の延長上で考え、外部に丸投げしようと考えている企業が意外と多いということです。

一般的に言われていますが、この”SIer”という言葉も業態も日本独特のことで、欧米にはないということです。欧米にあるのはソリューションベンダーで、自社が必要とするシステムを構想、設計し、ソリューションを選定し、プログラムを製造するのはほとんど自社で採用したPMもしくはSEになります。つまり日本風にいうとすべて内製することになります。
そのため、様々な現場等とのコミュニケーションをとりながらの全体を見て柔軟性がある開発が可能になると言われています。

エンジニアにとっては職業の流動性もあるので、ある会社のシステム開発のために採用されても、その開発が完了されれば、次にシステム開発を計画している会社に転職するということもあります。その際に良い実績があれば高額の報酬で採用されるということで、日本のエンジニアに比較し欧米のエンジニアの年収が高い一因とも言われています。

ところが日本ではシステム開発となると、”SIer”と呼ばれるシステム開発会社に企画、要件定義以外の業務を丸投げすることが従来より行われています。一般的に初期の企画、要件定義についても満足な形式ではなく、その曖昧さからしばしば問題が発生するため、その工程もコンサルタント会社に任せるという場合さえあります。つまり、会社のコアになるシステム開発を他人任せにするということで現在までやってきています。

それでもなんとかなっているのは、日本人の勤勉さと、馴れ合いで、「契約範疇外だけどなんとかしてよ」、「追加オーダーだけどなんとかしてよ」、「なんとか動かしてよ」、「まあしょうがないなあ・・」ということがまかり通って来たからに他なりません。

上記を今更やめましょうと言う気はさらさらありませんが、AI化でも同じ感覚はさすがにまずいでしょう、というのが懸念点です。

業務のシステム化とコア業務のAI化の大きく異なる点としては

1)AI化は出力に相関性が高い入力がないと精度が確保できない。
通常のシステム開発は、業務データ加工や業務データ連携の自動化が目的なので、主に従業員間のコミュニケーションといった陽にでている情報のデータ化、データ処理が中心になるのに対し、AI化は人間の思考過程を取り扱うものであり”陰”の動きをAI内部で実現するということになります。したがって、その入力に必要とされ、相関が高い情報は必ずしも明確でなく、できるだけ大量で場合によっては広範囲のデータが必要になります。その量や種別によって、設計や前処理作業時間も変化しますが、どれぐらいが必要か、というのは初期では判断がつかないので、外注先での作業工数の見積もりは困難と思います。

2)AI化では何をもって検収条件とするのか
システム開発では、システム要件が発注者から提示され、その要件を満足するか否かを確認する試験を実施し、それらの試験で正常に動作すれば納入、検収となります。
しかし、AIでは100%の精度を保証するのは容易ではありません。一定までの精度を確保するような学習データ量と学習期間がどれぐらい必要かといった予測すら困難です。また、交差検定という考えもありますが、それでいえることは学習データと異なるデータ群での検定ではこうなった、ということです。”かならずその精度がでる”ということは言えないです。それを発注者が理解した上で検収する必要があります。瑕疵という定義も当てはまるのか微妙ですね。

3)エキスパートなどの人間の知識、判断等の置き換えが狙いだが、当の依頼者が判断基準を説明できていないものをAI化しようとしている場合がある
コア事業をエキスパートの判断に依存していて、それをAI化したいという話がたまにありますが、そのノウハウを持っているが競争力なのに、その明示的な蓄積もなく、それをAIという更なるブラックボックスにしてしまって(しかもその作業過程を外注して)大丈夫ですか?という心配があります。精度向上や学習によるノウハウのアップデートとかをどうやってするのかとか考えないのでしょうか?

ということをつらつらと考えてみました。
弊社のようなAI化を推進しようとする会社がこんなことをいうのは自己矛盾と思われるかもしれませんが、”SI”のような考え方では継続的にAIを活用するのは難しいと考えざるをえず、各会社は自社内でAI化を推進するデータサイエンティストを採用または育成することで継続的かつ効果的に業務にAI が活用できるのではないかと考えます。

その実現に向け、”丸投げ”ではなく弊社の様なサービスをうまく組みわせてAI化を推進できるようなデータサイエンティストをそれぞれの会社が採用、育成することを期待します。

汎用AIに向けた「記憶するAI」

現時点ではディープラーニングにより画像認識をする場合、大量の学習データが必要となる。さまざまな改良がされているが人間が同様の学習をし認識をするために必要とする画像(1~10程度)と比較すると圧倒的に多くを必要とする。

これを持って、ディープラーニングはまだ人間に及ばないとする研究者もいる。

しかし、本当だろうか、人間とディプラーニングの学習環境の違いを考えて見たい。ディープラーニングはある画像群を学習・認識するために初期値を与えられ、ゼロからその画像群のみを学習する。それに対して人間は、生まれてから(正確には視覚系が正常に動き出してから)ずっと様々な画像を見続け、学習・記憶し続けているのである。犬や猫は見なくても、直線や曲線の様々なバリエーション、色彩についても視覚し、学習・記憶し続けているのである。人間は、初めて犬や猫を見たときに、それらの画像を構成する様々な形状の知識を活用し組み合わせることで犬や猫の特徴量を捉え、認識すると考えられる。そう意味からも、現状のディープラーニングの使われ方は特化型であり、人間の脳は汎用的であると言える。

将来的に、ディープラーニングの階層ごとのニューロン数を膨大な数にしても学習演算が可能になれば、多様な物体を同じDNN(Deep Neural Network)に学習・記憶させることで人間の脳の様に汎用的な認識が可能になるのではないかと思われる。

その研究の一端が以下の様にすでに開始されている。これは、「ロンドン」の地下鉄の最適経路探索をさせるDNNを「記憶させ」それを「パリ」の地下鉄の最適経路探索の学習に「活用」しようとするアルゴリズムである。

グーグル傘下のDeepMind、「人間のように記憶する」次世代AIを発表

http://wired.jp/2016/10/18/deepmind-dnc/

国の研究所からスピンアウトしたスタートアップDescartes Labsは衛星画像の分析データを農業分野などに売る

合衆国政府の研究機関で7年間仕事をした連中がこのほど、深層学習(deep-learning, ディープラーニング)による画像分析を行うスタートアップ(非公開企業)Descartes Labs(デカルトラブス)としてスピンオフし、330万ドルの資金を獲得した。

Descartes Labsが主に行うのは、衛星画像を分析してそこに写っているものを理解し、それらから有意なデータを取り出す仕事だ。Descartes LabsはLos Alamos National Lab(ロスアラモス国立研究所)から昨年8月に公式にスピンオフした。

Descartes LabsのCEO Mark Johnsoはこう言う: “うちがやっているのは、ふつうの画像認識技術ではない。うちでは画像に対して物理学を適用し、犬やコーラの缶を探したりはしない。遠隔探査と天体物理学には共通の部分が多いことが、分かってきた。空でたくさんの写真を撮る場合は、センサが正しく調製されていなければならないし、それらの写真を正しく縫い合わせて、大量の分析をしなければならない[天体物理学]。そしてそのときの望遠鏡を地球方向に向けたら、(地球〜地表に対して)それとまったく同じ問題を抱えることになる[遠隔探査]”。

同社はこれから、地球全体の農業を調べ始める。合衆国などでは農業のデータが充実しているが、そういうところは全地表のごく一部にすぎない。だから、データを衛星の画像に頼ることになる。そしてそうなると、それはお役所の問題ではなくて、Descartes Labsが機械学習を駆使して取り組むビッグデータの問題になる。

衛星から来るデータは、可視スペクトルのものだけではない。たとえば赤外線領域のデータは、農作物を調べるためにとても役に立つ。

ビジネスの展望はすでにはっきりとある。たとえば衛星画像から得られる農業に関するデータは、商品取引などの業界で珍重される。彼らはその限られたデータから、世界中の主要作物の作柄を予測したりするのだ。そういうデータの質を高めることの方が、各作物の栽培や輸出入に関する大雑把なデータよりも、同社のビジネスにとって価値がある。

衛星画像の応用分野はもっと多様だが、同社はとりあえず農業からスタートすることにしている。農業の分野も、同社がやってるような大きな視野のデータは、まだどこにもないからだ。Johnsonによると、330万ドルはプロダクトを世に出すためには十分な額であり、スタートアップにつきものの多少の失敗やその修正も許される、という。

 

 

http://jp.techcrunch.com/2015/05/02/20150501deep-learning-image-analysis-startup-descartes-labs-raises-3-3m-after-spinning-out-of-los-alamos-national-labs/

メタップスが43億円調達

スマートフォン(スマホ)向け広告大手のメタップス(東京・新宿、佐藤航陽社長)はこのほど、米国のベンチャーキャピタル(VC)や国内の事業会社などに対して第三者割当増資を実施し合計43億円調達した。資金は研究開発に充て、人工知能などの人材獲得、研究開発に資金を投じウエアラブル端末や自動車などのデータを解析できる体制を整える。

シリーズCとなるラウンドで調達した金額は総額43億円で、引受先企業は今後、事業提携発表などを通じて公表していくとしている。

同社はこれまで主にスマホアプリの利用データを収集。人工知能の技術で分析し広告配信などに活用してきた。2016年までに8億人分と現在の約5倍のデータの解析を目指す。

上場前のベンチャーの資金調達としては、直近ではモバイルゲームの開発配信を手掛けるgumiの昨夏の調達(50億円)に次ぐ規模になる。