ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

寿司とシャンパン、ディープラーニングとExcel、そんなマリアージュ

 『大予測 次に来るキーテクノロジー2018-2019』という本を読みました。野村総研のアナリストである城田真琴さんが、「次に来る」8つのテクノロジーの今とこれからについて、ふんだんな事例とともに解説したものです。 

大予測 次に来るキーテクノロジー2018-2019

大予測 次に来るキーテクノロジー2018-2019

  • 第1章 人工知能
  • 第2章 自動運転
  • 第3章 音声インタフェース
  • 第4章 チャットボット
  • 第5章 VR・AR・MR
  • 第6章 バイオメトリクス認証
  • 第7章 センシング、IoT
  • 第8章 ブロックチェーン

 多くの人にとってはほとんどが、聞いたことのあるテーマ・分野だと思います。タイトルに「2018-2019」と明示しているだけあって、「すぐに古くなることは承知で、今まさに旬な情報を詰め込んだ」という割り切り方で、先端企業の取り組みを幅広くカバーしています。たとえば音声インタフェースであれば、Amazon、Google、Appleといった巨大企業の覇権争いに、日本からはLINEが殴り込みにいき、音楽配信サービスとの連携でも火花を散らしていますね。

www.phileweb.com

 新しい技術がもたらす既存の社会システムとのズレについても、興味深いものがありました。ハイレベルな自動運転が実現され、運転の過失をユーザに問えなくなったとき、自動車保険はどのような形をとるべきか。音声認識端末がホテルの部屋に設置された場合、ユーザと、(録音のログを確認・管理できる)オーナーが一致しなくなるが、プライバシーはどう守るべきか。偏見なしで中立的な判断をしてくれるかのような人工知能に、人種差別的なバイアスが含まれるとしたら?などなど。

smartdrivemagazine.jp http://www.sekaiwoyakusu.com/entry/machineracismwww.sekaiwoyakusu.com

 また、チャットボットは「次に来る」イメージがわたしにはなかったため、取り上げられていたこと自体が意外でした。「なんとなく不自然な受け答えをして、結局正解にたどり着けないナニカ」という思い込みしかなかったので・・・。
 サービスを提供する企業にとってチャットボットは、スマホアプリやSNSの次の顧客チャネルという位置づけになっており、そこでのサービス展開が重要になってきているのだそうです。  

 チャットボットもそうですが、紹介されているテクノロジーの多くが、人工知能・ディープラーニングとともに語られているのも印象的でした。何らかの判定を行うための基幹技術としてディープラーニングが前提となっているのです。もはや、テクノロジーを成立させるための基盤技術なのですね。

 そんなディープラーニングを学び始めるのに適した本はたくさんあると思うのですが(ここから本題)、その中で異彩の放ち方が異彩すぎるのがコレ、『Excelでわかるディープラーニング超入門』。

Excelでわかるディープラーニング超入門

Excelでわかるディープラーニング超入門

 いやいや・・・。・・・いやいやいや! Excelでって!
 ってなりませんか?
 表紙でこんな風に煽ってきます。

難しい数学計算はExcelに任せて ディープラーニングのしくみを 動かしながら理解できる!

 「難しい数学計算」といいますか、本書は偏微分どころか行列もΣも出てきませんからね。ほぼ、加減乗除のみです。

 本書の目的は、数学やプログラミングの素養があまりない人が、「身近な」Excelを使ってディープラーニングを理解できるようになることです。なので、Excelの基本的な関数を丁寧に追っていけば、ディープラーニングが詰まるところ何をしているのか、がわかった気になります。重みづけとは、閾値は結局何なのか。どうやって文字を判定しているのか・・・。
 そして途中でExcelの限界につきあたり、その限界を畳み込みニューラルネットワークで一度超えて、「それでもやっぱりこれ以上は無理だよね」というところまで導いてくれる。それが本書。

 使う関数は、以下の通りです。特に難しいものはありません。

• SUM: 目的関数の計算
• SUMPRODUCT: 入力の線形和
• SUMXMY2: 平方誤差の検出
• EXP: シグモイド関数
• MAX: MAXプーリング、ReLU
• RAND: 初期値設定
• IF: 画像の判定

 3×4のビットパターンに対し、「〇」か「×」かを判定するアプローチは、こう*1

01

 ビットパターンをExcelの3×4マスを使って表現している・・・*2。 この発想、面白過ぎると思うんですよね。言われてみたらできそうな気はするけど、本当にやる?っていう。

 こちらが、入力層→隠れ層→出力層までを計算するExcelワークシート。

02

  • 隠れ層には3つのニューロンがあり、ビットパターン4×3セルに対応する重みづけの初期値がRAND関数で選ばれる。 閾値も同様で、ニューロン3つに対応して3つ設定されている。
  • 入力層のビットパターンと隠れ層の重みづけがSUMPRODUCTで掛け合わされたうえでシグモイド関数にかけられて、隠れ層の出力になる。
  • 隠れ層での出力と、出力層の重みづけ・閾値も同様に計算され、出力層の出力になる。
  • 誤差は、出力層の値と正解のゼロイチとの平方差分がとられる。
  • 各「画像」に対する判定結果に対する差分の和が、QT。

 最後に、上の絵でいう色塗りされたセル(最初にRAND関数でランダムに決めたもの)を変数とし、QTを最小化するようソルバーで計算させます*3
 これで確かに、「難しい数学計算はExcelに任せて」、最適なニューラルネットワークを求めることができました・・・・。

 Excelのサンプルワークシートがあるし、説明も冗長なくらい丁寧なので、Excelに慣れている人ならこの理解ルートは意外にたやすいのでは!?と思ってしまいます。ディープラーニングの本の数式に慄いてしまった方は、この道も考えてみてください!

*1:技術評論社の「サポートページ」に掲載された自習用Excelのキャプチャです。

*2:灰色セルには「1」が立っていて、計算に使われます。

*3:わたしのパソコンでは10秒ほどで計算が終わりました。