見出し画像

ピーター・ノーヴィグ: 人工知能 - 現代的アプローチ | レックス・フリードマン・ポッドキャスト #42

以下はピーター・ノーヴィグとの会話です。彼はGoogleのリサーチ・ディレクターであり、スチュアート・ラッセルとともに「人工知能 - 現代的アプローチ」という本の共著者です。この本は私自身を含む研究者の世代全体に人工知能の分野に入るよう教育し、インスピレーションを与えました。これは人工知能ポッドキャストです。楽しんでいただけたら、YouTubeでチャンネル登録をしたり、iTunesで5つ星評価をつけたり、Patreonでサポートしたり、あるいは単にTwitterで@lex friedman (f-r-i-d-m-a-nとスペルします) とつながってください。では、ピーター・ノーヴィグとの会話をどうぞ。
AIコミュニティの多くの研究者たち、私自身も含めて、「人工知能 - 現代的アプローチ」の3つの版すべて、赤、緑、青を所有しています。ご存知の通り、これはあなたがスチュアート・ラッセルと書いた、分野を定義するテキストブックです。初版から第2版、第3版、そして現在作業中の第4版まで、本はどのように変化し、あなた自身はそれに関連してどのように変化したのでしょうか?
そうですね、長年にわたって多くの変化がありました。第1版から第2版か第3版への変化の1つは、単にコンピューティングパワーの向上でした。第1版では、「述語論理はここまでです。すぐに何百万もの短い述語表現ができてしまい、それらはメモリに収まりきらないので、より簡潔な一階述語論理を使います」と言っていました。しかし、すぐに「述語論理はかなり良いですね。非常に高速なSATソルバーなどがあり、数百万の表現でも簡単にメモリに収まります。今では数十億でも収まります」と気づきました。これは、ハードウェアの拡張により必要な技術のタイプが変化したということです。
第2版でも、リソースの制約が大幅に緩和されましたね。
そうです。第2版は2000年代初頭でした。第1版が1995年で、2000年か2001年頃に第2版が出ました。そこからさらに進んで、GPUやさらに特殊な機械、TPUやディープラーニング用のカスタムASICなどを使用するようになりました。これはハードウェアにおける別の進歩です。
もう1つ、特に今回気づいたのは、最初の3つの版では基本的に「AIは期待効用の最大化として定義され、あなたが効用関数を教えてくれれば、それを最適化するためのクールな技術が27章分ありますよ」と言っていました。今回の版では、「最適化の部分は簡単かもしれない。難しいのは、私の効用関数は何か、私は何を望んでいるのか、そして私が複数のエージェントや社会全体である場合、私たちは全体として何を望んでいるのか」ということをより多く言及しています。
この版でその話題に触れているんですね。効用についてもう少し詳しく述べているということですか。
はい、それはとても興味深いですね。技術的なレベルでは、ほぼ哲学的な...実際、哲学的なものですね。私たちはいつも哲学の章を持っていました。それを支持していたことを嬉しく思っています。今では、「中国語の部屋」のような議論ではなく、これらの倫理的・社会的な問題についてより多く扱っています。公平性やバイアスの問題、そして効用の集約の問題などに踏み込んでいます。
人間の価値観を効用関数にエンコードするにはどうすればいいのでしょうか。これは純粋にデータを通じて、学習的な方法で行えるものなのか、それとも体系的な...明らかに良い答えはまだありませんが、この問題に取り組み始めたばかりですね。
はい、1つの答えはありません。確かに、それを学習しようとする技術はあります。逆強化学習について話していますね。強化学習では、あなたがいくつかの行動を取り、いくつかの報酬を得て、どの行動を取るべきかを理解します。逆強化学習では、誰かが行動を取るのを観察し、「彼らがこの行動を取ったのは、これをしたかったからに違いない」と推測します。
もちろん、それには制限があります。多くの人々が自己破壊的な行動を取ります。彼らは特定の方法で最適ではない行動を取ります。そのようなものを学習したくはありません。彼らが実際に取る行動ではなく、何らかの方法で完璧な行動を学習したいのです。そのため、この分野には課題があります。
もう1つの大きな部分は、理論的なものです。私たちに何ができるかを言うのです。例えば、再犯を予測し、誰が仮釈放を受けるべきか、あるいは誰が保釈を受けるべきかを決定するプログラムについての研究を見てください。それをどのように評価するのか、そして大きな問題の1つは保護されたクラス間の公平性です。保護されたクラスとは性別や人種などのことです。
2つのことを望みます。1つは、例えば10点満点中6点のスコアを得たら、それは人種に関係なく同じ意味を持つべきだということです。再犯の60%の確率を意味すべきです。商用プログラムの開発者の1人は、それを最適化しようとしており、そのバランスを達成したと言っています。
もう1つの側面は、もし間違いを犯すなら、その影響が保護されたクラスの両側に等しく及ぶべきだということです。しかし、実際にはそうではありません。黒人に対して白人よりも2倍の確率で害を与える間違いを犯す傾向があります。それは不公平に見えます。
両方の目標を達成したいと思うでしょう。しかし、分析をすると、理論的にはそれらの目標を同時に達成することは不可能だとわかります。一方を他方と比較して交換しなければなりません。
この分析は、私たちが何を目指すことができ、どれだけ得られるかを知るのに本当に役立ちます。すべてを手に入れることはできませんが、どこでトレードオフを行うべきかを分析だけで教えてくれることはできません。それでも、人間として、そのトレードオフをどこで行うべきかを熟考することはできます。
少なくとも今では、情報に基づいた議論をしています。不可能なことを求めているわけではありません。「ここが現状で、これが私たちの目指すところです。この戦略はあの戦略よりも優れています」と言えるのです。
それは、本当に強力で非常に重要な第一歩だと言えるでしょう。しかし、それは実行可能な一歩です。保護されたクラスに関して、システム内の望ましくない程度のバイアスを取り除くことです。そして、あなたのコメンcement speechを聞いたのですが、もっとファジーなものもありますね。Angry Birdsについて言及していましたね。
ドーパミンの楽しみを与えるシステム、システムに戻ってくることを最適化する、ゲームをプレイする瞬間を楽しむ、「いいね」を得るなどのことを最適化するシステムを作りたいのか、それとも長期的な改善のようなものを...それについて考えているのですか?それは本当に哲学的な領域に入っていきますね。
確かにそれについて考えています。AIの問題としてではなく、むしろ...あなたが言うように、要点は、私たちがこの社会とインフラストラクチャを構築し、注目のためのマーケットプレイスがあると言っているのです。社会として、私たちは無料のものが好きだと決めました。だから、私たちは電話のすべてのアプリが無料であることを望んでいます。つまり、それらはすべてあなたの注目を競い合っているのです。そして最終的に、広告やゲーム内購入などを通じて何らかの方法でお金を稼ぎますが、他のすべてのアプリを打ち負かすことでしか勝つことができません。あなたの注目を引き付けることで。
そして、私たちはマーケットプレイスを構築しました。それはあなたに対抗して働いているように見えます。あなたと協力しているのではなく。私は、プレイフィールドを変更する方法を見つけたいと思います。これらのものが私の味方であると感じられるようにです。はい、短期的に楽しむことはできますが、長期的にも助けてくれています。私と競争しているのではなく。
そして、それらは必ずしも対立する目的ではありません。ただ、私たちがこの新しい世界を理解しようとする中で、現在の直接的なインセンティブは、より簡単な部分、つまりドーパミンの急上昇を与えることに向かっているようです。
少し戻って、人工知能 - 現代的アプローチの本の執筆の始まりについて話しましょう。90年代、あなたがスチュアートと一緒に座って、AIの分野全体をカバーする本を書き始めたとき...実際、他の多くのコンピューターサイエンスの分野でもそれほど成功していない...それは大きな挑戦だったに違いありません。そのプロセスはどのようなものでしたか?分野全体をカバーしようとしていたのですか?それとも、より段階的なアプローチがありましたか?どのような感じでしたか?
そうですね、それは...バークレーの他のAI教員と昼食を取りに行って、「分野が変化しているね。現在の本は少し遅れているようだ。最近誰も新しい本を出していない。私たちがやるべきだ」と言っていました。みんな「うん、うん、それは素晴らしいアイデアだ」と言っていましたが、何もしませんでした。
そして、私は結局産業界に向かいました。サン・ラボに行きました。だから、私の可能な学術出版のキャリアはこれで終わりだと思いました。しかし、1年後に再びスチュアートに会い、「君たちがいつも話していた本、今頃は半分くらい完成しているんじゃないか」と言いました。彼は「いや、話すばかりで何もしていない」と言いました。そこで私は「やろうよ」と言いました。
私たちがそう感じた理由は、分野が変化している時期だと感じたからです。それは2つの面でした。古き良きAIは主にブール論理に基づいていました。不確実性に対処するためのいくつかのトリックがありましたが、主に知識工学に基づいていました。何かを実現するには、外に出て専門家にインタビューし、彼らが知っていることをすべて手作業で書き留めました。
95年頃、私たちは分野が2つの方向に変化していると感じました。1つはブール論理ではなく確率論に向かっていること、もう1つは知識工学ではなく機械学習に向かっていることです。他の本はまだ古い学校にとどまっていました。もちろん、その方向への一部はありましたが。私たちは、今から完全にその視点から始めれば、異なる種類の本を作ることができると言いました。そして、それをまとめることができました。
実際のプロセスを覚えていますか?章を書き始めたのですか?それともアウトラインを作ったのですか?
そうですね、アウトラインを作り、それぞれの人に章を割り当てました。当時、私はボストンに移り、スチュアートはバークレーにいたので、基本的にインターネットを介して行いました。今日のようなものではありませんでしたね。ダイヤルアップ回線を使い、telnetで接続し、「cat ファイル名」とタイプして、それが他端でキャプチャされることを祈るようなものでした。もちろん、画像や図を送り返すことはできませんでした。
その日から、90年代から、学習ベースの方法、データ駆動の方法への成長を予想していましたか?その後の数十年で起こった成長を?
確かに学習が重要だと考えていました。今日ほど重要だとは見逃していたと思います。ビッグデータのアイデアを見逃していました。ディープラーニングのアイデアはまだ発明されていませんでした。最初から完全に機械学習の観点から本を書くこともできたでしょう。
代わりに、まず異なる種類の表現を開発し、環境の異なる種類について話すことにしました。完全に観測可能か部分的に観測可能か、決定論的か確率的かなどです。機械学習の軸に焦点を当てるのではなく、それらの軸に沿ってより複雑にしました。
ディープラーニングの熱狂は特定の問題セットに対して非常に成功していますが、一般的なケースでは最終的に課題に直面すると思いますか?知覚システムと世界で行動するロボットの違いの観点から、第5版、第6版では AI Modern Approach のような幅広さに戻ると思いますか?将来の数十年で、ディープラーニングは1つの章として位置づけられ、AIのより大きな見方の中に収まると思いますか?
そうですね、まだどのように展開するかわかりません。新版では、ディープラーニングの章があります。イアン・グッドフェローをゲスト著者として招き、彼のディープラーニングの本全体を1つの章に凝縮してもらいました。彼は素晴らしい仕事をしたと思います。
また、古いニューラルネットの章を渡して「楽しんで現代化してください」と言ったところ、「半分くらいは大丈夫でした。確かに多くの新しいことが開発されましたが、コアの一部はまだ同じでした」と言ってくれたのは励みになりました。
そこで何ができるかについてより良い理解が得られると思います。他の技術でできることをすべて組み込む必要があります。ディープラーニングは畳み込みネットワークと知覚に非常に近いところから始まり、その後行動やある程度の長期的な計画にも対応できるようになりました。しかし、表現や推論、ワンショット学習などでより良い仕事をする必要があります。それがどのように展開するかはまだわかりません。
80年代の専門家システムのある程度の成功と最終的な部分的な衰退を振り返って、論理や推論に関する当時の研究に、将来再び台頭する知恵の核があると思いますか?
確かに、表現と推論のアイデアは非常に重要です。世界について学ぶのに十分なデータがない場合もあるので、何らかの表現のアイデアを持つ必要があります。それがプログラムされたものであれ、教えられたものであれ、そして推論のステップを取ることができる必要があります。
古き良きAIの問題は、1つには、すべてを原子的なこれらのシンボルに基づかせようとしたことです。それは三角形の性質を定義しようとするなら素晴らしいです。必要十分条件があるからです。しかし、現実世界のものにはそれがありません。現実世界は混沌としていて、鋭いエッジがありません。原子的なシンボルにはあります。そのため、それは適合が悪かったのです。
もう1つの側面は、推論が普遍的でどこにでも適用できるということでした。ある意味ではそれは良いのですが、どこに適用するかについての指針がないことも意味します。「山があって、砂粒を1つ取り除いても、まだ山です。しかし、それを繰り返すとある時点で山ではなくなります」といったパラドックスが出てきました。論理では、物事を繰り返し適用することを止めるものは何もありません。
しかし、ディープラーニングのようなもの(正確な名前はわかりませんが)で、それらのアイデアを分離できるかもしれません。1つは、山は単なる原子的な概念ではなく、犬についてのクールなリンクのページのようなもの、あるいは単語埋め込みのような、より複雑な表現を持つものだと言えます。
2つ目は、「砂粒を1つ取り除くことができ、それを何回か行うことができるが、ほぼ無限回行うことはできない」というルールを何らかの方法で学習できるかもしれません。一方で、整数に関する帰納法を行う場合は、無限回行っても問題ありません。
これらの戦略がいつ適用可能かを何らかの方法で学習する必要があります。戦略が完全に中立で、いつでもどこでも利用可能であるのではなく。
ニューラルネットワークを使用したり、データから自動的に表現を形成したりする場合、人間にとって説明可能ではありません。このニューラルネットワークが世界をどのように見ているのか、なぜ多くの場合に素晴らしく成功し、驚くべき方法で悲惨に失敗するのかについて、内省的ではありません。これについて将来はどうなると思いますか?単により多くのデータ、より良いデータ、より組織化されたデータで問題を解決できるのでしょうか?それとも、もう少し説明可能な象徴的なシステムの要素を取り入れる必要があるのでしょうか?
私は説明可能性よりも、信頼性、検証、および確認について話すことを好みます。説明は、それらの目標に向けた1つのツールだと考えています。これらのシステムを信頼できない限り使用したくないし、それらがどこで機能し、どこで機能しないかを理解したいという問題は重要です。説明はその一部になり得ます。
ローンを申し込んで拒否された場合、なぜかの説明が欲しいですよね。ヨーロッパではGDPRがあり、その説明を得る権利が保障されています。しかし、説明だけでは不十分です。私たちは人々や組織、企業などと付き合うのに慣れています。彼らは説明をくれますが、その説明が現実と関係しているという保証はありません。
銀行は「担保が足りなかったからローンは通りませんでした」と言うかもしれません。それは本当かもしれませんし、単に私の宗教が気に入らなかっただけかもしれません。説明からはわかりません。これは決定がコンピュータによって行われた場合でも、人間によって行われた場合でも同じです。
私はもっと求めています。説明が欲しいですし、会話を行って「この説明をくれましたが、これについてはどうですか?これが起こっていたらどうなっていたでしょうか?何を変える必要がありますか?」というようなやりとりができることを望みます。単一の出力としての説明よりも、会話の方がより良い考え方だと思います。
また、様々な種類のテストが必要です。決定が本当に担保に基づいていたのか、それとも宗教や肌の色に基づいていたのかを知るには、私の場合だけを見ていてはわかりません。しかし、すべてのケースを見渡せば、パターンを検出することができます。
そのような能力が欲しいですし、これらの敵対的なテストも欲しいです。画像内のオブジェクト認識でかなり良い成果を上げていると思っていました。ImageNetでほぼ人間レベルのパフォーマンスに近づいていると言っていました。しかし、これらの敵対的な画像を見始めると、「待てよ、その部分は人間のパフォーマンスとはまったく違う」と言わざるを得ません。
非常に簡単に操作できるのです。人間も別の方法で操作できますが。人間は「ドレスの色が何色か」わかりませんでした。つまり、機械への攻撃とは異なる特定の攻撃に対して脆弱です。しかし、機械への攻撃は非常に顕著で、私たちが達成したことについての考え方を本当に変えます。
私の考え方は、低次元のメタファーに惑わされているのが問題の一部だということです。教科書を見て、「さて、私たちは空間をマッピングしました。猫はここにあり、犬はここにあります。真ん中にはわからない小さな部分があるかもしれませんが、ほとんどすべてをカバーしています」と言います。そのメタファーを信じると、「もうほとんど達成した、敵対的な画像はほんの数個しかないだろう」と言うことになります。
しかし、それは間違ったメタファーだと思います。本当に言うべきは、それは私たちがほとんどカバーした2D平面の空間ではなく、100万次元の空間だということです。猫はこのクレイジーな経路をたどる文字列で、その経路から少しでも外れると、どこにも行けない土地にいて、何が起こるかわかりません。
これが私たちの現状だと思います。そして今、それに対処する必要があります。説明というわけではありませんが、モデルが何であり、何をしているのかについての理解でした。そして今、それをどのように修正するかを探求し始めることができます。
システムの堅牢性を検証することについて...私たちはロボットに対して少し厳しすぎるのではないでしょうか?人間同士のコミュニケーションには言葉や非言語的な要素を含むダンスがありますが、人間に同じ基準を適用したら...私たちはかなり速やかに互いを信頼しますよね。あなたと私は初めて会いましたが、何か狂ったことが起こらないという信頼がある程度あります。しかしAIシステムを見るとき、常に懐疑的なアプローチをとっているように見えます。信頼に値すると証明するのに多大な努力が必要だと。この障壁を取り除き、ギャップを埋めるにはどうすればいいと思いますか?
そうですね、それは大きな問題だと思います。友人のマーク・モファットは自然学者ですが、彼は「人間について最も驚くべきことは、コーヒーショップや混雑した都市の通りに入って、周りに初めて会う多くの人がいても、お互いを殺し合わないことだ」と言っています。チンパンジーにはそれができません。知らない集団がいる状況では、特においしい食べ物が周りにあるコーヒーショップでは、悪いことが起こります。
しかし、私たち人間はそれを解決しました。大部分において...まだ戦争をしたり、ひどいことをしたりしますが、大部分において互いを信頼し、一緒に暮らすことを学びました。それは私たちのAIシステムにとっても重要になるでしょう。
また、多くの強調はAIに置かれていますが、多くの場合、AIは技術の一部に過ぎず、本当の主要なものではありません。私たちが見てきた多くのことは、AI技術よりもコミュニケーション技術によるものです。良い決定を下したいですが、そもそもどんなシステムも持つことができる理由は、データを収集し、世界中の多くの人々にリーチできるコミュニケーションがあるからです。それが私たちが対処している大きな変化だと思います。
世界中の多くの人々にリーチすることについて言えば、教育の側面で、あなたは16万人の学生が登録した人工知能入門コースを教えました。これは大規模公開オンラインコース(MOOC)の最初の成功例の1つでした。その経験から何を学びましたか?MOOCやオンライン教育の未来についてどう考えていますか?
それは本当に楽しい経験でした。特に最初の頃は、エキサイティングで新しかったからです。しかし、それはまた競争が少なかったことも意味しました。MOOCについてよく聞くのは、「修了率が低いので失敗に違いない」ということです。私自身、おそらく50以上のコースを始めて完了していない主要な貢献者です。しかし、私はそれらから欲しかったものを正確に得ました。なぜなら、完了する意図は全くなく、トピックを少し覗いてみたいだけか、彼らがどのようにこのクラスを教えているかという教育法を見たかっただけだからです。
私が学んだ主なことは、最初は情報を伝えることが課題だと思っていたことです。知ってほしいことを明確に説明さえすれば、私の仕事は終わりで良いことが起こるだろうと。しかし、コースを行う中で、情報は必要ですが、実際には動機付けが最も重要だということを学びました。学生が続けなければ、コンテンツがどれほど優れていても意味がありません。
最初のクラスの1つだったので、外部の動機付けに助けられました。魅力的にし、コミュニティが互いに協力して動機付けを高めるような方法を設定しようと努力しましたが、実際には「これは新しいことだ、この新しいものの一部になれてワクワクする」という学生自身の動機付けが大きかったです。
これは素晴らしいことです。世界中には、これまでこのような機会がなかった人々がたくさんいます。スタンフォードやMITなどの学校に行ってクラスを受ける機会はなかったでしょう。しかし今、それを彼らにもたらすことができます。そして、彼ら自身の動機付けがあれば、以前にはできなかった方法で成功することができます。
しかし、それは準備ができている人々の最上位層にすぎません。残りの人々は、動機付けがなく、頑張ってやり遂げたらどんな利点があるのかを理解していません。それを実現できるようになるまでには、まだ長い道のりがあると思います。その一部は技術に基づいていますが、より多くはコミュニティのアイデアに基づいています。人々を実際に集める必要があります。集まりの一部はオンラインで行えますが、その種のコミュニティと信頼を構築するためには、実際に対面で行う必要がある部分もあると思います。
特に若い人たちの間で、意図的に短い注意力を育てるメカニズムがあります。オンラインの短い動画などによって...インターネットと共に育った人たちの脳の発達の仕方によって、かなり短い注意力を持っています。私自身も育った時には、おそらく別の理由で同じような短い注意力を持っていたと思います。
物理的な教室に座って、時には退屈で、時には眠りそうになりながらも、非常に難しいコンピューターサイエンスのコースを受けるというプロセスを自分に強制しなければ、今ほど多くのことを学んでいなかったでしょう。
対面式の教育体験と、あなた自身が経験し、教えてきたオンライン教育の違いは何だと思いますか?そのギャップを埋めることは可能でしょうか?それとも埋める必要はないのでしょうか?
2つの問題があると思います。1つは対面かオンラインかという物理的な場所の問題で、もう1つは所属の問題です。あなたが続けたのは、部分的には教室にいて、他の全員も同じように苦労しているのを見たからですが、また、入学し、授業料を払い、みんながあなたが続けることを期待していたからでもあります。社会、親、仲間たちがね。
これは2つの別々のことです。巨額の授業料を払い、みんながあなたがこれをすると署名し、でも自分の部屋にいて、クラスメイトも別々の部屋にいるという設定も想像できますよね。そういう風に設定することもできます。つまり、オンラインかオフラインかということだけではありません。
より重要なのは、あなたがコミットメントをしたということだと思います。確かに、クラス外で人々に会い、みんなが一緒にいるから話し合うというのは重要です。それは動機を維持するのに重要であり、また最も重要な学びが行われる場所でもあります。それを持ちたいですね。特に今、より高帯域幅や拡張現実、仮想現実に入り込んでいくと、同じ物理的な場所にいなくてもそれを得られるかもしれません。
近い将来、例えばスタンフォードで、在学生向けのコースがカリキュラムの一部としてオンラインのみになる可能性はあると思いますか?
そういったものが出始めていますね。ジョージア工科大学には、そのような形式で行われる修士課程があります。多くの場合、学生の制約を考慮して、修士プログラムやさらなる教育の形で徐々に導入されています。しかし、文字通り、今後数十年でスタンフォード、MIT、バークレーなどがすべてオンラインのみになる可能性はありますか?
おそらくないでしょう。彼らには物理的なキャンパスに大きなコミットメントがあります。財政的にも文化的にも大きな勢いがあります。そして、仮想的には難しいことがいくつかあります。私たちの分野では、自分のコンピューターと紙があれば、どこでも仕事ができます。しかし、生物学の研究室にいるなら、家に適切な設備はすべてありませんからね。
プログラミングについて...あなたは自身でも多くのプログラミングをしてきました。2001年に「10年でプログラミングを学ぶ」という素晴らしい記事を書きました。これは「21日でプログラミングを学ぶ」といった本への反応でした。今日、プログラミングを始める人にアドバイスをするとしたら、その旅をどのように始めるのが最良の方法だと思いますか?記事を書いてから数年経っていますが。
多くの異なる方法があると思います。今ではプログラミングはより多くのことを意味すると思います。その記事を書いたとき、私はプロのソフトウェアエンジニアになることをより考えていました。それはキャリアを通じての学習分野だと思っていました。
しかし今では、人々がプロフェッショナルレベルに達することなく、問題を解決する一部としてプログラミングを使用できることがたくさんあります。100万行のコードを書くわけではありませんが、生物学者や物理学者、あるいは歴史学者として、データを持っていて、そのデータに質問をしたいという場合です。そのような質問に答えるには10年かかる必要はありません。
そのような質問に答えるための多くのショートカットがあります。今日では、コーディングの学習、子供たちにコーディングを教えることに多くの重点が置かれているのを見ます。それは素晴らしいことだと思いますが、メッセージを少し変えてほしいです。
コードが主なものではないと思います。JavaScriptの構文を知っているか、このビジュアル言語でこれらのブロックを接続できるかどうかは本当に気にしません。しかし、問題を分析し、解決策を考え、それを実行し、モデルを作成し、そのモデルを実行し、テストし、結果を見て、それらが妥当かどうかを確認し、質問をして答えることができるかどうかを気にします。つまり、より多くのモデリングと問題解決であり、それを行うためにコーディングを使用しますが、コーディングそのものを学ぶことではありません。
それは本当に興味深いですね。多くの場合、実際にはデータを扱い、そこから何か有用なものを抽出することを学ぶということですね。問題解決と言うとき、実際には何らかのデータセットを収集し、それをクリーンアップし、あらゆる分野で役立つ興味深いことを言うということを意味しているのですね。
そうですね、自分が時々古い方法に縛られているのを感じます。例えば、若い従業員と一緒にプロジェクトに取り組んでいて、「ここに問題を解決するのに役立つ新しいパッケージがあります」と言われます。私はマニュアルを読み始め、2時間ほど読んでいると、同僚が戻ってきて「終わりました」と言います。
「パッケージをダウンロードしてインストールし、いくつかのことを呼び出してみました。最初のは動きませんでしたが、2番目のは動きました。今終わりです」と。私は「でも、これがどのように機能するのか、あれがどのように機能するのかについて100の質問があります」と言いますが、彼らは「誰が気にするの?全体を理解する必要はありません。質問に答えました。それは大きな複雑なパッケージで、残りは理解していませんが、正しい答えを得ました」と言います。
私にとっては、そのマインドセットに入るのが難しいです。全体を理解したいし、マニュアルを書いたのなら、おそらくそれを読むべきだと思います。しかし、それが必ずしも正しい方法ではないのかもしれません。不確実性とすべてを知らないことにもっと慣れる必要があると思います。
私も同じような悩みを抱えています。ドナルド・クヌースとの間のスペクトルで...問題について何か言う前に、本当にマシンコードやアセンブリまで掘り下げる必要があるという...あなたが言ったように、私のグループには20歳くらいの学生が何人かいて、彼らは私なら数週間かかるような問題をほんの数時間で解決できます。なぜなら、あなたが言ったように、私ならマニュアルを読もうとするからです。
時間とともに、コンピューターサイエンティストにとっても、より高いレベルの抽象化が利用可能になってきていると思いますか?例えば、今週はTensorFlowサミットがありましたが、ディープラーニングにそれほど詳しくなくてもコンピューターサイエンティストであれば、機械学習の基本的な内部を本当に知らなくても、TensorFlowを使って信じられないほど多くのことを達成できます。コンピューターサイエンティストにとっても、熟達の性質が変化していると思いますか?エキスパートプログラマーであるということの意味が。
そうですね、それは本当だと思います。実際、プログラマーに焦点を当てるべきではありませんでした。それはスキルであり、私たちが本当に焦点を当てたいのは結果です。
私たちは、自分でプログラミングすることでものごとを達成できるエコシステムを構築しました。少なくとも私が始めたころは、ライブラリ関数は平方根くらいしかありませんでした。他のすべてはゼロから構築する必要がありました。そして、必要なことの大部分を行う多くのものをダウンロードできるエコシステムを構築しました。
そのため、今では製造というよりも組み立ての問題になっています。それは問題を見る異なる方法です。
別の観点から、熟達と、問題を計算的に考える人々やプログラマーを見ると...Googleは採用の観点から、あるいはプログラマーのチームを構築する観点から、誰かが良いプログラマーかどうか、あるいは再び...
プログラマーという言葉から離れたいのですが、大規模なデータの問題を解決できる人かどうかをどのように判断しますか?面接プロセスを通じてそのようなチームをどのように構築しますか?
会社が成長するにつれて、求める人材のタイプがより広がっていくと思います。初期の頃は、人々を面接して「ジェフ・ディーンにどれくらい近いか」という質問をしようとしていました。ほとんどの人はかなり遠かったですが、それほど遠くない人たちを採用しました。そうして、本当に優れたプログラマーの同質的なグループを得ました。
しかし、会社が成長すると、「全員が同じスキルセットを持つ必要はない」と言うようになります。そして今、私たちは健康分野で生物学者を雇い、物理学者を雇い、機械エンジニアを雇い、社会科学者や民族誌学者など、異なる背景を持ち、異なるスキルをもたらす人々を雇っています。
あなたは豊富な経験を持っているにもかかわらず、まだコードレビューに参加することがあると言及しました。若手開発者やこれから登場する人々のコードで、あなたの背景からBLISPから数十年のプログラミングまで、よく見かける間違いや指摘することは何ですか?
それは素晴らしい質問です。時々、設計の柔軟性を見ようとします。このAPIはこの問題を解決しますが、将来どこに行くのか、他の誰がこれを呼び出したいと思うのか、そしてそれをより簡単にしているかどうかを見ます。
設計の問題ですか?ドキュメンテーションですか?それとも漠然としたもので、本当に言葉で表現できないものですか?開発者の立場に立って、これを使いたいと思うかどうかという感じですか?
そうですね、感じ方の問題だと思います。ドキュメンテーションは良いですが、それ以上に設計の問題です。設計が正しければ、ドキュメンテーションが良くなくても人々は理解するでしょう。設計が間違っていれば、使うのが難しくなります。
あなた自身は、プログラマーとしてどのように変化してきましたか?80年代、90年代から今日まで?既に少し言及しましたが、マニュアルを読みたい、言語の構文の核心や使い方を理解したいという傾向がありますね。しかし、80年代、90年代から今日までの進化はどのようなものでしたか?
一つ言えるのは、以前ほど効率性の細かい部分を心配する必要がなくなったということです。90年代にLispの本を書いたとき、オブジェクトシステムの作り方を示したいと思いました。基本的に、各オブジェクトをハッシュテーブルにして、メソッドを検索する方法を示しました。
そして「もちろん、実際のCommon Lispオブジェクトシステムははるかに複雑で、これらすべての効率性の問題があります。これは単なるおもちゃで、実生活で誰もこれをしないでしょう」と言いました。しかし、実際にはPythonがほぼ正確に私が言ったことをやったのです。オブジェクトは単なる辞書で、いくつかの小さなトリックはありますが、ほとんどが私が言ったとおりです。
80年代には100倍遅すぎたであろうものが、今ではほとんどすべてに十分に速いのです。プログラマーとして、効率的なコードを書こうという執着を手放さなければならなかったのですね。
本当に重要なのは、プロジェクトを完了するのにかかる総時間だということです。その大部分はプログラマーの時間になるでしょう。少し効率が悪くても、理解や修正が容易になるのであれば、それが正しいトレードオフなのです。
あなたはLispについてかなり書いていますね。プログラミングの本もLispで書かれています。Lispで書かれたコードもたくさん公開されています。Lispを知らない私や人々のために説明すると、多くのAI研究者にとって好きな言語、あるいは今日ではほとんど使わない好きな言語です。Lispのどの部分が最も美しく、強力だと感じますか?
美しい部分は、その単純さだと思います。半ページで言語全体を定義できるのです。他の言語にはそれがありません。すべてを頭の中に収めることができると感じられます。
多くの人が「それでは単純すぎる。私がやりたいことがたくさんあるのに、私のJavaやPythonなどには100や200、300の異なる構文規則があるのに、それらすべてが必要ではないか」と言います。Lispの答えは「いいえ、8つほどの構文規則しか与えませんが、あなた自身で定義することを許可します」というものでした。
これは非常に強力なアイデアでした。問題とデータから始めて、その問題とデータに適した言語を構築し、そしてLispにその言語を定義させることができるという考えです。つまり、あなたは同時に言語のプログラマーであり、言語設計者でもあるのです。これにより、問題と最終的なコードの間により良いマッチングが可能になります。Lispは他の言語よりもこれをうまく行っていたと思います。
これは関数型プログラミングの非常にエレガントな実装ですが、なぜLispはPythonのような言語のような大規模な採用と成功を収めていないと思いますか?括弧が原因ですか?すべての括弧が?
いくつかの理由があると思います。一つは、Lispが単一のプログラマーや小さなチーム、そして言語設計をしていると言える良い趣味を持つスキルの高いプログラマーのために設計されていたことです。良い選択をすれば素晴らしいですが、悪い選択をすると自分を傷つけ、チームの他のメンバーが理解するのが難しくなる可能性があります。
したがって、Lispが適していたプロジェクトの規模には、人数の面で限界があったと思います。そして産業として、私たちはその限界を超えて成長しました。
確かに括弧の問題もあると思います。Lispの頭字語の一つの冗談は「Lots of Irritating Silly Parentheses(たくさんのイライラする愚かな括弧)」というものです。私の頭字語は「Lisp Is Syntactically Pure(Lispは構文的に純粋)」で、括弧と原子さえあればすべて十分だと言っていました。
AIの教科書を90年代に書いたとき、本には擬似コードがありましたが、オンラインではLispを使用しました。当時はAIの言語だったからです。Lispを学んだことのない学生たちから苦情があったのを覚えています。擬似コードとこのLispがどのように対応しているのかわからないと。
実際には、擬似コードのシンボルとの1対1の対応がありました。唯一の違いは括弧だけでした。ある人々にとっては、一定数の左括弧が脳をシャットダウンさせてしまうのだと思いました。
その意味で、Pythonは逆の方向に進んだのですね。その時点で、Lispだけではダメだと気づきました。AIを教えるのに10週間か12週間、15週間しかないのに、そのうち2週間をLispを教えるのに費やしたくありませんでした。
そこで、別の言語が必要だと思いました。当時、Javaが最も人気のある言語でした。しかし、Javaは非常に冗長なので、擬似コードとJavaの間に1対1の対応を持つのは本当に難しいことがわかりました。
そこで、私の擬似コードに最も似ている言語を見つけるための調査をすることにしました。そしてPythonが基本的に私の擬似コードと同じだったのです。私はPythonのことを聞いたことがなかったにもかかわらず、どういうわけかグイドと同じようなものを設計していたのです。それ以来、Pythonを使っています。良いマッチングだったからです。
Pytudes、あなたのGitHubリポジトリにあるPythonのパズルと演習についての話を聞かせてください。楽しそうですね。
ただ楽しいと思ったんです。パズルが好きで、教育者であることも好きです。Udacityで授業をしました。Udacity 212だったと思います。基本的にPythonを使用した問題解決についての授業でした。Pytudesはその授業の演習を提供しているのですか?
そうですね、授業が先にありました。Pytudesの一部は授業にあったものの書き起こしで、一部は新しい問題に取り組み続けたものです。
Pytudesの組織的な狂気は何ですか?ただクールな演習のコレクションですか?
ただ面白いと思ったものです。
素晴らしいですね。あなたは2001年から2005年までGoogleの検索品質のディレクターでした。初期の頃、従業員がほんの数人で、会社が急成長していた時期ですね。Googleの革命は、私たちが知識を発見し、共有し、集約する方法を変えました。これは文明の基本的な側面の一つです。歴史を通じて情報を共有するさまざまなメカニズムがありましたが、Googleはそれを10倍以上改善しました。あなたはその一部でした。人々がその情報を発見するのを助けました。初期の頃、哲学的なレベルや技術的なレベルでどのような課題がありましたか?
確かにエキサイティングな時期でした。あなたが言ったように、毎年規模が倍になっていました。課題は、正しい答えを得たいということでした。そしてそれが何を意味するのか理解し、それを実装し、すべてを効率的にし、良い答えを提供しているかどうかをテストし続ける必要がありました。
良い答えと言うとき、それは人々がキーワードとして入力しているものに関して、結果が彼らにとって望ましい順序で並べられているということですね。最初にクリックするものが、実際に探しているものである可能性が高いということですか?
私たちが持っていた指標の一つは、最初のものに焦点を当てていました。一部はページ全体に焦点を当てていました。つまり、上位3つくらいに焦点を当てていました。私たちは、どれだけうまくいっているかについて、多くの異なる指標を見ていました。そして、それをサブクラスに分けました。例えば、ここにうまくいっていないクエリのタイプがあるとして、それを修正しようとしました。
早い段階で、私たちは敵対的な立場にいることに気づき始めました。最初は、「私たちは図書館のカードカタログのようなものだ。本はここにあり、私たちは脇に立って、そこにあるものを反映しているだけだ」と考えていました。しかし、私たちが変更を加えるたびに、ウェブマスターも変更を加えることに気づきました。それはゲーム理論的なものでした。
そのため、今この動きが正しいかどうかだけでなく、この動きをしたら相手はどう反応するか、それによって私たちはより悪い状況に陥るのではないか、その場合は別の動きをすべきではないか、ということも考えなければなりませんでした。
インターネットの人気と成長に伴って、人々が新しいコンテンツを作成していたと思います。つまり、あなたたちはほとんどコンテンツの作成を導いていたのですね。
確かにそうです。私たちは明らかにネットワークの構造を変えました。初期の頃を思い出すと、ラリーとサージェイがPageRankの論文を書き、ジョン・クラインバーグがHubsとAuthoritiesモデルを発表しました。これは、ウェブが「犬についてのクールなリンク」のような私のページであるハブと、最も多くの人がリンクする犬についてのページであるオーソリティで構成されているというモデルでした。
しかし、それはもう起こりません。人々は「クールなリンクの私のページ」を作ろうとはしません。なぜなら、私たちがその機能を引き継いだからです。つまり、私たちはそれがどのように機能するかを変えたのです。
当時、インターネットが今日のように大規模で活気に満ちたものになると想像しましたか?既に急速に成長していましたが、今日、インターネットを驚きの目で見て、絶えず作成され、共有されているコンテンツの量を見たことがありますか?
常に驚いています。将来を予測するのは本当に得意ではありません。
大学院生だった1980年頃を覚えています。ARPANETがあり、それを商業化してインターネットにするという提案がありました。あの狂ったゴア上院議員がそれは良いアイデアだと思っていました。
私は「商業企業がこの技術を理解できるとは思えない。彼らには決してできないだろう」と思っていました。「.comドメインを持つことはできるだろうが、どこにも行かないだろう」と。私は間違っていて、アル・ゴアが正しかったのです。
同時に、商業企業であることの意味も変わりました。Googleは...その創業は以前の企業とは異なりますよね。以前は不可能だった多くのビジネスモデルがあります。
将来を予測する観点から、人間レベルの知能に近づくシステムを構築するには何が必要だと思いますか?もちろん、人間レベルの知能を作ることにこだわりすぎずに、人間にとって非常に有用なシステムを作ることが重要だとおっしゃいましたが、そのレベルに近づくには何が必要だと思いますか?
確かに、人間レベルの知能は一つのものではありません。多くの異なるタスク、多くの異なる能力があると思います。また、それが目標であるべきだとも思いません。
人間レベルで掛け算ができる電卓を作りたいとは思いません。それは後退です。多くのことについて、人間レベルをはるかに超えることを目指すべきです。他のことについては、人間レベルが良い目標かもしれません。そして他のことについては、「これは既に人間ができるタスクなので、取り組む必要はない」と言うべきでしょう。
あなたが言ったように、私は有用なツールに焦点を当てるのが好きです。場合によっては、人間レベルであることが、ツールを有用にするための重要な閾値を超えるために重要な部分になります。
例えば、電話やテーブルの上に置くスピーカーにあるようなパーソナルアシスタントでは、それらと会話ができることが望まれます。産業として、これらのものができることの正しいモデルをまだ完全には理解していません。人と話すのと同じように会話できることを目指していますが、まだそのモデルを実現できていません。
天気を聞いたり、いい曲を流してもらったりすることはできます。そしてあと5、6個くらいのことはできますが、それ以上のことはできません。深い意味のあるつながりという意味では。
あなたは「her」を好きなAI映画の一つとして挙げていましたね。人間がAIシステムやAIアシスタントに恋をすることは可能だと思いますか?天気を聞くことから、深いつながりを持つという大きな飛躍をして。
人間として、それは私たちが好んでやることだと思います。「her」の上映会でパネルディスカッションがあったとき、誰かが「他にどの映画が『her』に似ていると思いますか」と聞いてきました。私の答えは「ライフ・オブ・ブライアン」でした。これはSF映画ではありませんが、両方の映画が必ずしも現実でないものを信じたいという願望について描いているのです。
ちなみに、知らない人のために言うと、これはモンティ・パイソンの映画ですね。
絶妙に言い表されています。私たちはそういうものだと思います。信頼したい、信じたい、恋に落ちたいと思っています。そして、それにはそれほど多くのことは必要ありません。
私の子供たちはテディベアに恋をしました。テディベアはあまり対話的ではありませんでした。それはすべて私たちが自分の感情をデバイスやものに押し付けているのです。そして、私たちはそれが好きなので、これからもそうし続けるでしょう。
人間としては、そのつながりを求めるでしょうし、AIはそれに応えるために少し努力するだけでいいのです。
確かに、犬レベルまで到達できれば、多くの人々が自分のペットに多くの愛情を注いでいます。自動運転車の仕事をしていて聞いたところによると、一部の人々は自分の無生物の車に多くの愛情を注いでいるそうです。
本当にそれほど多くのことは必要ありません。
少し哲学的あるいは馬鹿げた話題かもしれませんが、あなたの見解では、知能の良いテストは何でしょうか?チューリングテストのような自然な会話は良いテストだと思いますか?言い換えれば、コンピューターがどんなことをしたら、今日あなたは本当に感銘を受けますか?
常に感銘を受けていますよ。でも本当に印象的なこと...囲碁をプレイしたり、スタークラフトをプレイしたりするのは、すべてかなりクールですね。
確かに会話は重要です。時々、システムを簡単に騙せるようなテストがあります。チャットボットが会話できても、本当に知的かどうかを明らかにするほど深い状況に決して陥らないようなものです。
チューリングはそれを提案しましたが、もし彼が生きていたら「それを本気で言ったわけではない」と言うでしょう。チューリングのポイントは、会話のテストが良いテストだということではなく、テストを持つことが正しいということだったと思います。
哲学者が「AIは不可能だ」と言うのではなく、「テストをしよう、その結果が答えを教えてくれる」と言うべきだということです。必ずしも会話のテストである必要はありません。
その通りですね。技術が進化するにつれて、新しい、より良いテストを考案することが正しい方法かもしれません。

この記事が気に入ったらサポートをしてみませんか?