Articles tagged with: Google

人工知能はどのようにして「名人」を超えたのか?


本書は新刊で購入した。タイトルに惹かれたためだ。

人工知能が人類にどのような影響を及ぼし、人類をどのように変えていくのか。それは私が興味を持つ数多くのテーマの一つだ。

1997年に当時のチェス世界チャンピオンをIBMのディープ・ブルーが破った快挙は、人工知能の歴史に新たな扉を開いた。もう一つ、人工知能の歴史における偉業として挙げられるのは、2011年にアメリカの有名なクイズ番組「ジェパディ!」でこれもIBMが作ったワトソンが人間のクイズ王を破ったことだ。

これらの出来事は人類の優位を揺るがした。それでもなお、チェスよりもはるかに複雑で指し手の可能性が膨大にある囲碁や将棋において、人間が人工知能に後れをとることは当分こないとの予想が大勢を占めていた。それは、ゲーム中に現れる局面の指し手の数を比較すれば分かる。チェスが10の120乗だとすれば、将棋は10の226乗。囲碁は10の360乗にもなるからだ。
だが、2015年にGoogleのAlphaGoが世界のトップ棋士を破ったことは人間の鼻をへし折った。2017年には棋界においても人工知能「ponanza」が、人類のトップクラスの棋士を一敗地に塗れさせた。

本書は人工知能「ponanza」の開発者が、その開発手法や機械学習について語った本だ。

そもそも、人工知能はどのように将棋の指し手を覚えるのだろう。そして開発者はどのように将棋を人工知能に教え込むのだろう。
本書は、私が人工知能や機械学習に対して持っていたいくつかの誤解を正してくれた。それと同時にAlphaGoと「ponanza」の手法の違いにも気づきを与えてくれる。

本書の第1章「将棋の機械学習━プログラマからの卒業」では、まずコンピューターの歴史や、機械学習についての試行錯誤が語られる。ここで重要なのは、人工知能が人間の思考を模倣することを諦めたということだ。人間の思考を諦めたとは、どういうことだろう。
人間の思考とは、自分の脳内の動きを思い返すに、何かを判断する際にそれを過去の事例と照らし合わせ、ふさわしいと判断された結果だ。
だが、その評価基準や過去の事例の探索は、プログラムで模倣することが難しい。私も、自分自身の心の動きをトレースするとそう思う。

まず、プログラムによる判断からの卒業。それが将棋の人工知能の発展におけるブレイクスルーとなった。これは他の機械学習の考えにも通ずるところだ。むしろ本質ともいえる。

「ponanza」のプログラムには過去の棋譜や局面の情報は一切含めておらず、将棋のルールや探索の方法だけが書かれているという。局面ごとの評価そのものについては全て「ponanza」に任せているそうだ。
この構成は機械学習に通じている方にとっては当たり前のことだろう。だが、プログラムで一切の評価を行わない原則は誤解しやすい部分なので、特に踏まえておかねばならない。

局面ごとにそれぞれの指し手について、勝率が高い方を内部で評価する。その判断基準となるデータは内部で膨大に学習し蓄積されている。
人間の判断でも同じことを行っているはずだが、数値に変換して高い方を採用することまでは行っていない。
つまり統計と確率だ。その手法を採用したことに対する感情や情緒は「ponanza」は考えない。あくまでも数値を重んじる。

ところが「ponanza」は当初、機械学習を使っていなかったという。代わりにロジスティック回帰の手法を採用していたようだ。
つまり統計から確率を演算して予想する手法だ。「ponanza」が機械学習を採用したのは、まさに本書の執筆中だったと言う。

第2章「黒魔術とディープラーニング━科学からの卒業」では、機械学習について書かれる。
機械学習にもいくつかの問題があるという。例えば、単純な丸暗記ではうまく知能が広がらず、判断も間違うのだとか。そこで、わざといくつかの探索を強制的にやめさせるという。このドロップアウトと呼ばれる手法によって人工知能に負荷を与えたことによって、かえって人工知能の学習は進んだという。
重要なのはこの時、なぜそのような効果が生まれるのか科学者でも把握できていないことだ。他にも、技術者がなぜそうなるのか分かっていない事象があるという。たとえば、機械学習において複数の層を学習させると、なぜそれがうまく学習されるのか。また、ある問題を解くにあたって、複数のCPUで計算させる場合でも闇雲にCPUを増やすだけでは正解率は上がらない理由も分かっていないそうだ。むしろ、一つの課題を複数のCPUで同時に解くように指示した方が早く正確な解を導き出せるそうだ。だが、その理由についてもまだ解明できていないと言う。
著者はそれを黒魔術と言う言葉で表している。

細部の構造を理解すればそれが全体においても理解できる。つまり科学の還元主義だ。機械学習の個別の動きについては科学者でも理解できている。だが、全体ではなぜそのような結果が導かれるのかが理解できない。つまり、すでに人工知能は還元主義を超越してしまっている。

なぜ人工知能がシンギュラリティーに達すると、人の理解が及ばない知能を獲得してしまうのか。生みの親であるはずの技術者がなぜ人工知能を制御できないのか。黒魔術の例えは、誰もが抱くはずの根本の疑問を私たちにわかりやすく教えてくれる。
人工知能の脅威論も、技術者が理解できない技術が横行していることへの危機感から生まれているに違いない。

第3章「囲碁と強化学習━天才からの卒業」では、人類によって磨き上げられた知能が人工知能によってさらに強くなる正のフィードバックが紹介される。
囲碁の人工知能であるAlphaGoが驚異的な能力を獲得した裏には、画像のパターン認識があった。囲碁の局面ごとの画像を膨大に学習し、それぞれごとに勝率の良い方を判断する術。
画像認識の際に有用だったのがモンテカルロ法だ。これは、統計学の書物を読むとしばしばお目にかかる概念だ。たとえば円の面積を求めたい場合、いわゆる円周率πを使うのではなく、ランダムに打ち込んだ点が円の外にあるものと内にあるものを数える。するとその割合の数が増えれば、πに限りなく近くなる。

座標の位置によってその統計と確率を判断する。
それは囲碁のように白と黒の碁石が盤面で生き物のように変化するゲームを把握するときに有用だ。それぞれの点を座標として記憶し、その勝率を都度計算する。
AlphaGoはモンテカルロ法による勝率予想と機械学習の併用で作られている。画像処理の処理はまさに人工知能の得意分野だ。それによってAlphaGoの性能は飛躍的に上がった。

10の360乗と言う膨大な局面の最善手を人工知能が判断するのは困難とされていた。だが、AlphaGoはそれを成し遂げてしまった。
人間の知能を超越し、神として見なされるふさわしい圧倒的な知能。それは信仰の対象にすらなった。すでに人間の天才を超えてしまったのだ。

第4章「倫理観と人工知能━人間からの卒業」では、知能と知性について深い考察が繰り広げられる。

著者は、人工知能が人類を凌駕するシンギュラリティは起こると考えている。シンギュラリティを語る際によく言われる懸念がある。それは、人工知能が人類によって制御が不能になった際、人工知能の内部の論理が人間に理解できないことだ。人間は人工知能の判断の根拠を理解できないまま、支配され、絶滅させられるのではないかという恐れ。

著者は、その懸念について楽観的に考えている。
その根拠は、人類が教え込み、人類の知恵をもとに学習した人工知能である以上、人類の良い面を引き継いでくれるはずという希望に基づいている。
つまり人間が良い種族であり、良い人であり続ければ、人工知能が私たちに危害を加えない保証になるのではないかということだ。人が親、人工知能が子供だとすれば、尊敬と愛情を感じる親に対して、子は敬意を持って処遇してくれるはず。その希望を著者は語っている。

巻末ではAlphaGoの偉業について語る著者と加藤氏、さらに囲碁棋士の大橋氏との3者対談が収められている。

対談の中では、AlphaGoと対戦したイ・セドル氏との対戦の棋譜が載せられている。複雑な局面の中でなぜAlphaGoがその手を選んだのか。その手は勝敗にどのような影響を与えたのか。
それが解説されている。

早い時では第七手でAlphaGoが打った一手が、ずいぶん後の局面に決定的な影響を与える。まさに人工知能の脅威と、人類が想像もつかない境地に達したことの表れでもある。
私はあまり囲碁が得意ではない。だが、人間が狭い視野で見られていない部分を人工知能がカバーするこの事象は、人工知能が私たちに与える影響を考える上で重要だと思った。
おそらく今後と、人工知能がなぜそのようなことをするのか私たちには理解できない事例が増えているはずだ。

面白いことに、著者は対談の中でこのように語っている。
「コンピューターは、論理的に動くけれど、本当の意味での論理力は足りていないんです」(263ページ)。
つまり、人工知能とはあくまでも過去の確率から判断しているだけであって、もし人間が既存の棋譜や学習内容に含まれていない手を打ってきた時、人工知能はそれを論理的に捉えられず混乱するのだ。

もう一つ本書を読んで気づくのは、人類自身が囲碁や将棋の奥深さを人工知能に教えられることだ。人類が思いも寄らない可能性を人工知能によって教えられる。
それは、これからの人工知能と人間の共存にとって希望だと思う。人工知能から人間も学び、新たなヒントを得ていく。

これは著者のシンギュラリティへの態度と並んで楽観的な意見だと指摘されるはずだ。
だが、今さら人工知能をなかったことにはできない。私たちは何があろうとも人工知能と共存していかなければならないのだ。
本書は人工知能の本質を理解する上でとても優れた本だと思う。

‘2020/08/18-2020/08/18


世界一速く結果を出す人は、なぜ、メールを使わないのか グーグルの個人・チームで成果を上げる方法


メールが世の中にとって欠かせないツールとなって、早くも20数年が過ぎた。
だが、今やメールは時代遅れの連絡手段となりつつある。
メールを使う事が生産性を阻害する。そうした逆説さえ常識となりつつある。
わが国の場合、信じられない事にFAXが現役で使われているという。真偽のほどは定かではないが、コロナウィルスの集計が遅れた理由にFAXの使用が報じられていた。

それにも関わらず、多くの企業では、メールがいまだに主要な連絡手段として活躍中だ。
私ですら、初対面の企業の担当者様とはメールを使っている。
メールが生産性を阻害する理由は、両手の指では足りないほど挙げられる。そのどれもが、生産性にとって悪影響しかない。

だが、メールに代わる連絡手段は今や無数にある。チャットツールも無数に。
メールに比べると、チャットツールは手軽さの点で圧倒的に優位だ。
情報が流れ、埋もれてしまうチャットツールの欠点も、最近のチャットツールでは改善されつつある。

そうしたツールの利点を活かし、さらに働き方を加速させる。
本書にはそうしたエッセンスが詰まっている。

「はじめに」で述べられているが、日本企業の生産性が低い理由として、著者は三つの理由を挙げている。
1 持ち帰って検討しすぎる
2 分析・検討しすぎる
3 打ち合わせ・会議など多くのコミュ二ケーションがコスト・ムダにしかならない

ここに挙げられた三つの生産性悪化の要因は、わが国の企業文化の問題点をそのまま表している。
いわゆる組織の問題だ。

とにかく、本書のエッセンスとは、即決と即断の重要性に尽きる。
1で書かれているような「持ち帰り」。これが、わが国の会議では目立つ。私もそうした現場をたくさん見聞きしてきた。
著者は、メール文化こそが「持ち帰り」文化の象徴だという。

こうした会議に現場で実務を知り、実際に手を動かしている人が出てくることはあまりない。会議に出てくるのはその上長であり、多くの場合、上長は進捗の管理に気を取られ、実際の業務の内容を理解するしていることが多くない。
例えば、私が属する情報処理の仕事を例に挙げると、実際に手を動かすのはプログラマーだ。その上に、詳細の設計を行うシステム・エンジニアがいる。

設計といっても、あまりにも混み入っているため、詳細な設計の内容を理解しているのは設計した当人になりがちだ。
会議に出てくるようなプロジェクトマネージャー、システムの全体を管理するマネージャーでは、現場の詳細はわからない事が多い。

そうした生産性を低下させる例は、情報処理に限らずどの業界にもある。
現場の複雑なオペレーションを理解するのは、一人か二人、といった現場は多いはずだ。
だから、業務内容の詳細を聞かれた際や、それにかかる労力や工数を聞かれると、現場に持ち帰りになってしまう。少しでも込み入った内容を聞かれると、部署の担当に聞いてみます、としか答えられない。

そうした細かい仕様などは、会議を行う前に現場の担当者のレベルで意見交換をしていくのが最もふさわしい。
なのに、かしこまったあいさつ文(いつも大変お世話になっております、など)を付けたメールをやり取りする必要がある。そうしたあいさつ文を省くだけで、迅速なやりとりが可能になるというのに。

著者が進めているようなチャットツールによる、気軽な会話でのやりとり。
これが効率をあげるためには重要なのだ。
つまり、かしこまった会議とは本質的に重要ではなく、セレモニーに過ぎない。私も同感だ。

ところが、わが国では会議の場で正式に決まった内容が権威を持つ。そして責任の所在がそこでようやく明確になる。

これは、なぜ現場の担当者を会議に出さないかという問題にも通じる。
現場の担当者が会議で口出したことに責任が発生する。それを嫌がる上司がいて、及び腰となる担当者もいる。だから、内容を把握していない人が会議に出る。そして持ち帰りは後を絶たない。悪循環だ。

著者は、会議の効率を上げることなど、論議するまでもない大前提として話を進める。

なぜなら、著者が本書で求める基準とは、そもそも10%の改善や向上ではなく、10倍の結果を出すことだからだ。
10倍の結果を出すためには、私たちの働き方も根本的に見直さなければならない。

本書を読む前から、私も著者の推奨するやり方の多くは取り入れていた。だが、今の10倍まで生産性を上げることには考えが及んでいなかった。私もまだまだだ。

著者によれば、今のやり方を墨守することには何の価値もない。
今のやり方よりもっと効率の良いやり方はないか、常に探し求める事が大切だ。
浮いた時間で新たなビジネスを創出する事が大切だと著者は説く。完全に賛成だ。
もっとも私の場合、浮かせた時間をプライベートな時間の充実につぎ込んでいるのだが。

本書には、たくさんの仕事のやり方を変える方法が詰まっている。
例えば、集中して業務に取り組む「スプリント」の効果。コミュニティーから学べるものの大きさや、人付き合いを限定することの大切さ。学び続けることの重要性。SNSにどっぷりハマらない距離感の保ち方。服装やランチのメニューなどに気を取られないための心がけ。

本書に書かれている事は、私が法人設立をきっかけに、普段から励行し、実践し、心掛けていることばかりだ。
そのため、本書に書かれている事はどれも私の意に沿っている。

結局、本書が書いているのは、人工知能によって激変が予想される私たちの仕事にどう対処するのか、という処方箋だ。
今や、コロナウィルスが私たちの毎日を変えようとしている。人工知能の到来よりもさらに早く。それは毎日のニュースを見ていればすぐに気づく。

そんな毎日で私たちがやるべき事は、その変化から取り残されないようにするか、または、自分が最も自分らしくいられる生き方を探すしかない。
今のビジネスの環境は数年を待たずにガラリと変わるのだから。

もし今の働き方に不安を覚えている方がいらっしゃったら、本書はとても良い教科書になると思う。
もちろん、私にとってもだ。私には足りない部分がまだ無数にある。だから、本書は折に触れ読み返したい。
そして、その時々の自分が「習慣」の罠に落ち込んでいないか、点検したいと思う。

‘2019/5/20-2019/5/21


2018年のGoogle Local Guidesの結果が届きました


2018年の2-6月まで、集中的にGoogle Local Guideの投稿を行ったところ、一気にレベルがアップし、10月には本社でのイベントに御呼ばれしました。昨年末にまとめとして書いた通りです。

それがこうした形でレポートとして届けられましたのでアップいたします。今年はあまり活動できていませんが、もう少ししたら投稿を復活しようかな、と考えています。ライフログはSwarm + FourSquareで継続しますが。


Google ChartのGeocodingにも課金設定は必要


1.前書き

Google Maps PlatformのAPIに課金が必要となる。そのニュースはずいぶん前から言われていました。そして2018年の夏、「Google Cloud Platform上で課金設定したアカウントでないと、Mapの表示すら制限されるようになりました。ですが、それはGoogle Map側の話。他には影響がないものと思っていました。ところが今回、別の記事でGoogle Chartを取り上げた際にGeocoding(色塗りマップ)を使った場合にGoogle Mapの課金制限が適用されることに気づきました。

これがその証拠スクショ。
Geocoding_error

目次

1.前書き

2.Google Maps Platformの課金

3.API KEY取得までの試行錯誤

4.Google Cloud Platform上からプロジェクトを作成する

5.Google Cloud Platform上に作ったプロジェクトをGoogle Maps Platformから選ぶ

2.Google Maps Platformの課金

さて、これをどうやればよいか調べます。ここでエラーメッセージが主張しているのは
「Geocoding Serviceからのお達し:Google Maps Platform APIsへのリクエストごとにAPI KEYを使わねばならない」という断固たる姿勢。これはいかんとGoogle Maps Platformを調べてみました。APIの料金を調べたところ、月間40000リクエストまでなら無料枠に含まれるとのこと。価格表

3.API KEY取得までの試行錯誤

ならAPI KEYを取ろう、と思って調べたところ、こちらのサイトが見つかりました。ねんでぶろぐさんのエントリー「【2018年7月16日版】Google Maps の APIキー を取得する」です。ありがとうございます。

ところが書かれている通りにやってみたところ、2018/12/8の段階ではうまくいかないことがわかりました。以下に失敗したところまでを追っかけてみます。

まず、https://cloud.google.com/maps-platformにアクセスします。そして左下の「使ってみる」ボタンを押してみました。
google maps platform1

このようなポップアップが出るので、Mapsだけにチェックを入れ、右下の「CONTINUE」ボタンを押します。
google maps platform2

すると、このような画面が出るので、「Select or create project」の右側にある下向きの▼を押します。
google maps platform3

するとこのような画面が出ました。今回は新たなプロジェクトをこしらえるのがよいと思ったので、「+ Create a new project」のメニューをクリックしました。
google maps platform4

こういう名前のプロジェクトでよいか、と思ったのですよ。
google maps platform5

するとこのようなエラーメッセージが。はて? 「project_id」なんて項目はどこにもなかったぞよ?
google maps platform6

ひょっとすると、この画面でさっきはMapsだけにしかチェックを入れていなかったのがよくなかったのかな?と思って全部にチェックをいれ、「CONTINUE」ボタンを押したのですが・・・やはり同じエラーに阻まれます。これはねんでぶろぐさんのページには出てこなかった。
google maps platform7

4.Google Cloud Platform上からプロジェクトを作成する

そこで考えてみました。先ほどの画面で出てきたprojectの一覧は、以前に私が作成した別のprojectの名称。ということは、それらと同じ方法でprojectを作成し、そこからこの画面を通してMaps APIに登録すればよいのではないか? と。結論からいうと当たりでした。

まず、私のGoogle Cloud Platformのダッシュボードを表示させます。そして上部の違うprojectの横にある下の▼を押します。下図の一番上にある「slack-python-kintone」の右横の▼です。
google maps platform8

すると、下図のような画面が出たので、右上の「新しいプロジェクト」メニューをクリックします。
google maps platform9-1

すると下図のようなポップアップに切り替わります。プロジェクト名をこのように決めて打ち込んでみました。
google maps platform10-1

プロジェクトが出来上がったので、先ほどのプロジェクトの一覧にkintone-google-chartというプロジェクトができています。それをクリックしてください。
google maps platform11-1

するとプロジェクトのダッシュボードが開きます。左上のメニューボタンからメニューバーの「APIとサービス」を選ぶと、右側にサブメニューが出ます。ここで認証情報を選び、本来ならkintone-google-chartのプロジェクトが使用できるGoogle Cloud PlatformのAPIや、認証するための条件を選ぶ必要があります。ところが、ここでいくらMaps APIなどを対象APIに設定しても認証が通りません。全パケット許可にすることなどとても考えられません。なぜならここで認証のためのAPIの候補を適用させようにも、そもそもGeocodingが出てきません。
google maps platform12

5.Google Cloud Platform上に作ったプロジェクトをGoogle Maps Platformから選ぶ

そこでもう一度よく考えてみました。そう、迷ったら原点に戻れ、です。本稿の最初でまず、https://cloud.google.com/maps-platformにアクセスしたと思います。

そこでは、Create a new projectを選んでいました。
google maps platform4

今は違います。すでにあらたにkintone-google-chartを作っています。また、よく調べてみると、下図のように対象となるプロダクトの種類「Maps」「Routes」「Places」のうち、今回の記事ではGeocodingだけが必要のようですから、三つともチェックを入れる必要はありません。なので「Places」のみにチェックを入れます。
google maps platform22-5

続いての画面ではCreate a new projectではなく、すでに作っておいた「kintone-google-chart」を選択すればよいです。
google maps platform22-7

すると、今度は先ほどのようなproject_idがないというエラーに妨害されず、先に進みました。
余談ですが、おそらくここはGoogleのバグだと思いますので、ゆくゆくはねんでぶろぐさんの紹介された方法でもうまくいくはずだと思います。
google maps platform23

ここでようやく、API KEYが取得できます。先ほど「kintone-google-chart」の作成時にもダッシュボードの画面から認証情報のメニューに飛ぶこともできます。そこでも実はAPI KEYは取得できるのですが、そのAPI KEYでは認証が有効になっていない(Geocoding APIのほか8個のAPIが有効になっていない)ので、意図した動きをしてくれません。
google maps platform24-1

今度こそこのAPI KEYを使う時が来たのです。これでGeocodingを呼び出した時にもエラーなく動くことでしょう。

本稿はこれで終わりです。