Author: Atom Scott

DLがソフトウェアを食い尽くす

数週間前にAndrej Karpathyと飲み物をしたとき、私たちはここ数年、機械学習がどこに向かうのかと話しました。 Andrejは “Software 2.0″というフレーズを捨てました。私は数百ものプロジェクトで毎日起こっているプロセスを捉えていたので、すぐに嫉妬していました。私は彼のブログ記事がそこにあるまで私の舌を持っていましたが、今私はこれについても私の考えを広げたいと思います。 パターンには、明示的なプログラミングロジックを使用してデータ処理を行う既存のソフトウェアプロジェクトがあり、それを維持する責任を負うチームが、深い学習ベースのソリューションで置き換えることができるとわかっています。検索ランキングの向上、データセンターのエネルギー使用量、言語翻訳、Goの解決など、私たちが公表したアルファベットの例だけを指し示すことができますが、これは内部的にはまれな例外ではありません。私が見ているのは、現代機械学習を適用することによって、自明ではないロジックを持つほとんどのデータ処理システムを大幅に改善できることです。 これらの用語を入れても、これは劇的なものではないかもしれませんが、ソフトウェアの構築方法は根本的な変化です。複雑で複雑なロジックの絡み合いを記述して維持するのではなく、開発者は教師、訓練データの管理者、結果のアナリストになる必要があります。これは私が学校で教えたプログラミングとはまったく異なっていますが、最も興奮しているのは、ツールがキャッチアップすると、伝統的なコーディングよりもはるかにアクセスしやすいということです。 このプロセスの本質は、多くの入力の例と、出力のための期待を提供することです。これは従来のプログラミングと同じ技術的スキルを必要としませんが、問題のドメインの深い知識が必要です。これは、ソフトウェアの動機づけられたユーザーが、今までに実現できなかったよりも、構築に直接的な役割を果たすことができることを意味します。本質的に、ユーザーは自分のユーザーストーリーを書いて、機械に送り込んで自分が望むものを作り上げています。 Andrejは、音声や音声認識などの分野に焦点を当てていますが、実際にはもっと多くのドメインに影響があると主張しています。古典的な「機械学習:技術的負債の高利貸クレジットカード」は、機械学習システムが深いソフトウェアスタックに組み込まれる非常に一般的なパターンを示しています。私が見ていることは、スタック全体を深い学習モデルに置き換えることによってますます問題が解決されるということです!破綻点に類推して、これはすべての債務をより低い支払いで単一のローンに統合するようなものです。 1つのモデルは、深く相互接続されたモジュールのセットよりもはるかに容易に改善され、メンテナンスははるかに容易になります。多くの大規模システムでは、実際に何をしているのかを理解できると主張できる人はいないので、デバッグ性や制御には実質的な損失はありません。 私はこれがすべてより深い学習誇大広告のように聞こえることを知っています。もし私が毎日起こっているプロセスを見る立場にいなければ、それも飲み込むのが難しいでしょうが、これは本当です。ビルゲイツ氏は、「ほとんどの人が1年でできることを過大評価し、10年後にできることを過小評価している」と言いました。これが伝統的なソフトウェアの深い学習への置き換えについての感想です。知識が開発者コミュニティに拡散するにつれて、長い進展がありますが、10年後にはほとんどのソフトウェアの仕事はプログラミングを伴わないと予測しています。 Andrejが記憶に残しているように、「[深い学習]はあなたよりも優れています!

Read More

Software 2.0

元記事−Software 2.0.– Andrej Karpathy ソフトウェア2.0 私は時には、人々がニューラルネットワークを単に「あなたの機械学習ツールボックスの別のツール」と呼んでいることを知っています。彼らはいくつかの長所と短所を持っています、彼らはここかそこそこで働き、時々あなたはKaggleの競争に勝つためにそれらを使うことができます。残念なことに、この解釈は完全に木の森を欠場する。ニューラルネットワークは単なる分類子ではなく、ソフトウェアの書き方の根本的な変化の始まりを表しています。それらはソフトウェア2.0です。 ソフトウェア1.0の「古典的なスタック」は、私たちがよく知っているものです。Python、C ++などの言語で書かれています。プログラマが書いたコンピュータへの明示的な指示で構成されています。コードの各行を書くことによって、プログラマは、プログラム空間内の特定の点を、望ましい動作で特定します。 対照的に、ソフトウェア2.0は、ニューラルネットワークの重みなど、はるかに抽象的な、人間に不親切な言語で記述することができます。人間はこのコードを書くことに関与していません。なぜなら、多くの重み(一般的なネットワークは何百万もあるかもしれません)があり、重みの直接のコーディングは難しいです。 代わりに、私たちのアプローチは、望ましいプログラム(例えば、 “入力の出力ペアの例を挙げる”、または “Goのゲームに勝つ”)の振る舞いにいくつかの目標を指定し、コードの大まかなスケルトンを書くことです検索するプログラム空間のサブセットを識別するニューラルネットアーキテクチャ(neural net architecture)であり、計算資源を使用してこの空間を検索し、動作するプログラムを探す。ニューラルネットワークの特定のケースでは、検索プロセスを、逆伝播および確率的な勾配降下を伴って(幾分驚くほど)効率的に行うことができるプログラム空間の連続したサブセットに限定する。 現実世界の問題の大部分は、プログラムを明示的に書くよりも、データを収集すること(または、より一般的には、望ましい行動を特定すること)がはるかに容易であるという性質があることが判明しています。このような場合、プログラマは2つのチームに分割されます。 2.0プログラマは手動でデータセットを管理、維持、マッサージ、クリーン、ラベル付けします。データセットが最適化によってSoftware 2.0コードにコンパイルされるため、各ラベル付きサンプルは文字通り最終システムをプログラムします。一方、1.0のプログラマーは、周辺ツール、分析、ビジュアライゼーション、ラベリングインターフェース、インフラストラクチャー、トレーニングコードを維持しています。 進行中の移行 この進行中の移行の具体的な例を簡単に見てみましょう。これらの各分野では、ここ数年で、明示的なコードを記述して複雑な問題に対処しようとすることをあきらめ、代わりにコードを2.0スタックに移行させることで改善が見られました。 視覚認識は、機械学習のビットを先端に散在させた工学的特徴(例えば、SVM)で構成されていた。それ以来、大きなデータセット(ImageNetなど)を取得し、畳み込みニューラルネットワークアーキテクチャの空間を検索することにより、より強力な視覚的特徴を発見しました。最近では、アーキテクチャを手作業で行うことにも自信を持っておらず、それらについても調査を開始しています。 音声認識には多くの前処理、ガウス混合モデル、隠れマルコフモデルが必要でしたが、今日ではほとんどがニューラルネットで構成されています。 1985年からFred Jelinekに帰された、非常に関連してよく引用されたユーモラスな引用は、「私が言語学者を呼び出すたびに、音声認識システムのパフォーマンスが上がっています。 音声合成は、歴史的に様々なステッチングメカニズムで近づいてきたが、今日の最先端のモデルは、生のオーディオ信号出力を生成する大きなConvNets(例えば、WaveNet)である。 機械翻訳は、通常、フレーズベースの統計手法を用いたアプローチですが、ニューラルネットワークは急速に支配的になりつつあります。私のお気に入りのアーキテクチャーは多言語設定で訓練されています。単一のモデルがソース言語からターゲット言語に変換され、弱く管理された(または完全に監督されない)設定に変換されます。 ゲーム。明示的に手作業でコーディングされたゴー・プレイ・プログラムは長い間開発されてきましたが、AlphaGo Zero(ボードの生の状態を見て移動を演じるConvNet)は今ではゲームの最も強力なプレイヤーになっています。私は、他の分野でも非常に似通った結果が得られると期待しています。 DOTA 2、またはスタークラフト。 データベース。人工知能以外の伝統的なシステムでも、移行の初期のヒントが見られます。例えば、「学習指数構造の場合」は、データ管理システムのコアコンポーネントをニューラルネットワークに置き換え、キャッシュ最適化されたBツリーを最大70%高速処理しながら、メモリのオーダの大きさを節約します。 上記のリンクの多くにはGoogleでの作業が含まれています。これは、Googleが現在、ソフトウェア2.0のコードに大きなチャンクを書き直す最前線に立っているからです。 「すべてを統治する1つのモデル」は、個々のドメインの統計的な強さが世界を一貫して理解するように合併された、これがどのように見えるかを早期に説明します。 ソフトウェア2.0の利点 複雑なプログラムをSoftware 2.0に移植することを好む理由は何ですか?明らかに、簡単な答えは、実際にはよりよく働くということです。しかし、このスタックを好む多くの便利な理由があります。 Software 1.0のメリットのいくつかを見てみましょう(ConvNetと思う:Software-1.0と比較して:生産レベルのC ++コードベース)。ソフトウェア2.0は: 計算上均一です。典型的なニューラルネットワークは、第1の順序で、行列乗算とゼロでの閾値処理(ReLU)の2つの演算のサンドイッチで構成されています。かなり異質で複雑な古典的なソフトウェアの命令セットと比較してください。少数のコア計算プリミティブ(例えば、行列乗算)に対してソフトウェア1.0の実装を提供するだけで済むので、さまざまな正確性/性能保証を行う方がずっと簡単です。 シリコンに焼き付けるのが簡単です。当然のことながら、ニューラルネットワークの命令セットは比較的小さいので、これらのネットワークをシリコンに非常に近く実装することはかなり容易である。カスタムASIC、ニューロモルフィックチップなどがあります。低消費電力のインテリジェンスが私たちの周りに広がると、世界は変わるでしょう。例えば、小さくて安価なチップには、事前に準備されたConvNet、音声認識装置、およびWaveNet音声合成ネットワークがすべて、小さなプロトタイプに統合されていることがあります。 一定の実行時間。典型的なニューラル・ネット・フォワード・パスの各反復では、まったく同じ量のFLOPSが必要です。あなたのコードはいくつかの広がったC ++コードベースをとって取ることができる異なる実行パスに基づいてゼロの可変性があります。もちろん、動的な計算グラフを持つことはできますが、実行フローは通常は依然としてかなり制限されています。このようにして、意図しない無限ループで自分自身を決して見つけられないこともほぼ保証されます。 一定のメモリ使用。上記に関連して、動的に割り当てられたメモリはどこにもありません。したがって、ディスクへのスワップの可能性もほとんどなく、コード内で狩らなければならないメモリリークもあります。 それは非常にポータブルです。行列の乗算のシーケンスは、古典的なバイナリやスクリプトと比べて、任意の計算構成で実行する方がはるかに簡単です。 それは非常に機敏です。もしあなたがC ++のコードを持っていて、誰かがあなたを2倍速くしたいなら(必要に応じてパフォーマンスを犠牲にして)、新しい仕様のためにシステムをチューニングすることは非常に簡単です。しかし、ソフトウェア2.0では、ネットワークを利用し、チャネルの半分を削除し、再トレーニングして、速度が2倍になり、少し悪化します。魔法です。逆に、より多くのデータ/計算を取得した場合は、チャンネルを追加して再訓練するだけですぐにプログラムを改善できます。 モジュールは最適な全体に融合することができます。私たちのソフトウェアは、しばしばパブリック関数、API、またはエンドポイントを介して通信するモジュールに分解されます。しかし、最初に個別に訓練された2つのソフトウェア2.0モジュールが相互作用する場合、全体を簡単にバックプロパゲージすることができます。あなたのWebブラウザが低レベルのシステム命令10を自動的に再設計して、Webページを読み込む際の効率を上げることができれば、どれほど驚くべきことだと考えてください。 2.0では、これがデフォルトの動作です。 それはあなたよりも優れています。最後に、最も重要なことに、ニューラルネットワークは、貴重な業種の大部分であなたや私が思い付くことができるものよりも優れたコードです。現在のところ、画像/動画や音声/音声とは関係がありません。 ソフトウェア2.0の制限 2.0スタックにもいくつかの欠点があります。最適化の終わりにはうまくいく大規模なネットワークが残っていますが、どのように伝えるのは非常に難しいです。多くのアプリケーション分野では、われわれが理解している90%の正確なモデルか、そうでない99%の正確なモデルを使用するかの選択が残されます。 2.0のスタックは、直感的で恥ずかしいやり方で失敗する可能性があります。たとえば、訓練データに黙って黙って導入することで、サイレントに失敗する可能性があります。ほとんどの場合。 最後に、このスタックの特有のプロパティのいくつかをまだ発見しています。例えば、敵対的な例や攻撃の存在は、このスタックの直観的でない性質を強調しています。 2.0スタックでのプログラミング ソフトウェア1.0は私たちが書いたコードです。ソフトウェア2.0は、評価基準(「このトレーニングデータを正しく分類する」など)に基づいて最適化によって作成されたコードです。プログラムが明白でない任意の設定bu […]

Read More

ソフトウェアが世界を食べ尽す。

元記事−Why Software is Eating the world.– Marc Andreessen マーク・アンドリーセン – Wikipedia1993年、事業家 ジム・クラークからメールをもらい、共同でモザイクコミュニケーションズを設立した(のちに ネットスケープコミュニケーションズと社名変更)。そして、Mosaicのコード関連の書類を破棄した上で、新たに Netscape Navigatorブラウザを開発した。このソフトウェアは当時としては非常に成功し、 1995年には会社は 株式公開 … 今週、ヒューレットパッカードは、成長の見込みがより高いソフトウェアにもっと重点的に投資することに賛成して、苦労しているPCビジネスから撤退すること探っていると発表した。 一方、Googleは携帯電話端末メーカーのMotorola Mobilityを買収する計画中だ。 どちらの動きもテクノロジー界を驚かせた。 しかし、この両方の動きは、私が見てきた傾向に沿っており、最近の株式市場の混乱にもかかわらず、アメリカ経済と世界経済の将来の成長にとって前向きだ。 要するに、ソフトウェアは世界を食べている。 1990年代のドットコムバブルのピークから10年以上が経ち、急速に拡大しているプラ​​イベートマーケットの評価、時には成功したIPOでさえ、FacebookやTwitterなどの新しいインターネット企業がシリコンバレーで論争を巻き起こしています。 Pets.comの幕開けからの傷跡はまだ投資家の精神に新鮮で、人々は「これはただ危険な新しいバブルじゃないか」と疑問を持つ。 私は他の人たちとともに、この事件の反対側を論じてきました。 (私はFacebook、Groupon、Skype、Twitter、Zynga、Foursquareなどに投資しているベンチャーキャピタルのAndreessen-Horowitzの共同創設者であり、ゼネラルパートナーでもあります。私は個人的にLinkedInの投資家でもあります。)著名な新しいインターネット企業の多くが、真に高成長、高利益、高度に防御可能なビジネスを構築しています。 今日の株式市場は、大手のテクノロジー企業を、常時低価格/収益率で示されるように、嫌っている。 例えば、Appleは、巨大な収益性と市場支配力にもかかわらず、過去2週間の時価​​総額がアメリカで最大の企業となったにもかかわらず、株式市場と同程度の約15.2の株価収益率を記録した。(Exxon Mobilを上回っている)。 人々が絶えず「バブル!」と叫んでいるときは、大抵の場合、バブルではない。 しかし、議論の多くは、シリコンバレーの新企業最高の本質的価値とは対照的に、依然として財務的価値評価に関するものである。 私自身の理論では、ソフトウェア企業が経済の大規模な支配を引き継ぐことになる、劇的で幅広い技術的および経済的な変化の真っ只中にいるということだ。 ますます多くの主要なビジネスと産業がソフトウェア上で稼動しており、映画から農業、国防までがオンラインサービスとして提供されている。 優勝者の多くは、確立された業界構造に侵入して転覆しているシリコンバレースタイルの起業家の技術企業です。 今後10年の間に、私は多くの産業がソフトウェアによって粉々に打ち砕かれると予想している。事実、新しい世界的強者のシリコンバレー企業が、より多くのケースでディスラプションを起こしている。 なぜ今か? コンピュータによる革命が起きてから60年が過ぎ、マイクロプロセッサーの開発から40年、現代的なインターネットの登場から20年を経た、業界をソフトウェアで変革するために必要なすべての技術がついに機能し、世界規模で広く展開することができる。 20億人以上がブロードバンドインターネットを利用している。私が共同設立した会社であるネットスケープにいた10年前はそれが5000万人だった。 今後10年間で、世界中で少なくとも50億人の人々がスマートフォンを所有し、毎日のようにインターネットのフルパワーにすべての人が瞬時にアクセスできるだろう。 バックエンドでは、ソフトウェアプログラミングツールとインターネットベースのサービスにより、新しいインフラストラクチャに投資したり、新しい従業員を育成したりすることなく、多くの業界でソフトウェアによるグローバルな新興企業を簡単に立ち上げることができる。 2000年に私のパートナーBen Horowitzが最初のクラウドコンピューティング企業のLoudcloudのCEOだったとき、基本的なインターネットアプリケーションを実行するコストは月に約15万ドルだった。いまではAmazonのクラウドで同じアプリケーションを実行すると、月に約1,500ドルで収まる。 スタートアップコストが低く、オンラインサービスの市場が大幅に拡大された結果、1990年代初めの全サイバービ先見者の夢である、ディジタルに繋がった世界的な経済が初めて完成した。 おそらく、伝統的なビジネスを食い尽くすこの現象の最も劇的な例は、ボーダーズの自殺とそれに対応するアマゾンの上昇です。 2001年、ボーダーズは、オンライン書籍販売が非戦略的かつ重要でないという理論のもと、オンラインビジネスをAmazonに引き渡すことに合意した。 やっちまったな。 今日、世界最大の書店、ソフトウェア会社のアマゾン。その中心的な機能は、事実上あらゆるものをオンラインで販売するための驚くべきソフトウェアエンジンであり、小売店は必要ない。 ボーダーズが破産の危機に襲われていた最中、アマゾンはウェブサイトを再構築して、Kindleデジタルブックを物理書籍に初めて導入するようにした。 本でさえ、ソフトウェアとなった。 加入者数最大ビデオサービスは、ソフトウェア会社のNetflix。 Netflix が Blockbusterを屈服させた話はすでに古いですが、今や他の伝統的なエンターテインメントプロバイダは同じ脅威に直面している。 […]

Read More

講演 8: スケール

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド Lecture8_JustinPress Justin Kan Lecture8_WalkerNo Description Lecture8_StanleyHow to Get Started その他の情報 The Press is a Tool by Alexia Tsotsis 全ての情報はサム・アルトマンのコースに掲載されているものです。 トランスクリプト

Read More

講義7:ユーザー愛の構築方法(Kevin Hale)

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド Lecture 6-convertedGrowth alex schultz その他の情報 Your App Makes Me Fat by Kathy Sierra What Makes a Design Intuitive by Jared Spool Creative mornings with Ben Chestnut; (user-provided transcript) What Makes Marriages Work by John Gottman, Nan Silver BJ Fogg’s Behavior Model Customer Intimacy and Other Value Disciplines, Harvard Business Review The Sanctity of […]

Read More

講義6:成長(Alex Shultz)

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド Lecture 6-convertedGrowth alex schultz How we put Facebook on the path to 1 billion users – Chamath Palihapitiya; (user-provided transcript) Does Slow Growth Equal Slow Death? by Joel Spolsky A Recipe for Growth – Adding Layers to the Cake by Jeff Jordan Mark Zuckerberg on Facebook’s Early Days by Mike Isaac The Secret […]

Read More

講義 5: 競争は敗者のため(Peter Thei)

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド Y Combinator Startup Class #5 : Competition is for losersSlide utilisé dans le cours n°5 de la Y Combinator Startup Class de Standford (http://startupclass.samaltman.com/) donné par Peter Thiel Publiée sur slideshare… Chapter 3-5 of Zero to One by Peter Thiel その他の情報 全ての情報はサム・アルトマンのコースに掲載されているものです。 トランスクリプト

Read More

講義4 – 製品の構築、ユーザーとの会話、成長(Adora Cheung)

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド CS183BLecture4building product, talking to users, and growing oct 2, 2014 その他の情報 From Failure to $37M in Funding with Adora Chueng Why Startups Need to Focus on Sales, Not Marketing by Jessica Livingston 全ての情報はサム・アルトマンのコースに掲載されているものです。 トランスクリプト

Read More

講義3 – スタートアップの前に(Paul Graham)

動画の字幕を日本語に設定できます。設定方法はこちら。 スライド その他の情報 How to Get Startup Ideas by Paul Graham Excerpt from Steve Jobs’s 1995 interview with Computerworld’s Oral History Project – watch from 1:10:53 onwards 全ての情報はサム・アルトマンのコースに掲載されているものです。 トランスクリプト

Read More