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

数週間前にAndrej Karpathyと飲み物をしたとき、私たちはここ数年、機械学習がどこに向かうのかと話しました。 Andrejは “Software 2.0″というフレーズを捨てました。私は数百ものプロジェクトで毎日起こっているプロセスを捉えていたので、すぐに嫉妬していました。私は彼のブログ記事がそこにあるまで私の舌を持っていましたが、今私はこれについても私の考えを広げたいと思います。

パターンには、明示的なプログラミングロジックを使用してデータ処理を行う既存のソフトウェアプロジェクトがあり、それを維持する責任を負うチームが、深い学習ベースのソリューションで置き換えることができるとわかっています。検索ランキングの向上、データセンターのエネルギー使用量、言語翻訳、Goの解決など、私たちが公表したアルファベットの例だけを指し示すことができますが、これは内部的にはまれな例外ではありません。私が見ているのは、現代機械学習を適用することによって、自明ではないロジックを持つほとんどのデータ処理システムを大幅に改善できることです。

これらの用語を入れても、これは劇的なものではないかもしれませんが、ソフトウェアの構築方法は根本的な変化です。複雑で複雑なロジックの絡み合いを記述して維持するのではなく、開発者は教師、訓練データの管理者、結果のアナリストになる必要があります。これは私が学校で教えたプログラミングとはまったく異なっていますが、最も興奮しているのは、ツールがキャッチアップすると、伝統的なコーディングよりもはるかにアクセスしやすいということです。

このプロセスの本質は、多くの入力の例と、出力のための期待を提供することです。これは従来のプログラミングと同じ技術的スキルを必要としませんが、問題のドメインの深い知識が必要です。これは、ソフトウェアの動機づけられたユーザーが、今までに実現できなかったよりも、構築に直接的な役割を果たすことができることを意味します。本質的に、ユーザーは自分のユーザーストーリーを書いて、機械に送り込んで自分が望むものを作り上げています。

Andrejは、音声や音声認識などの分野に焦点を当てていますが、実際にはもっと多くのドメインに影響があると主張しています。古典的な「機械学習:技術的負債の高利貸クレジットカード」は、機械学習システムが深いソフトウェアスタックに組み込まれる非常に一般的なパターンを示しています。私が見ていることは、スタック全体を深い学習モデルに置き換えることによってますます問題が解決されるということです!破綻点に類推して、これはすべての債務をより低い支払いで単一のローンに統合するようなものです。 1つのモデルは、深く相互接続されたモジュールのセットよりもはるかに容易に改善され、メンテナンスははるかに容易になります。多くの大規模システムでは、実際に何をしているのかを理解できると主張できる人はいないので、デバッグ性や制御には実質的な損失はありません。

私はこれがすべてより深い学習誇大広告のように聞こえることを知っています。もし私が毎日起こっているプロセスを見る立場にいなければ、それも飲み込むのが難しいでしょうが、これは本当です。ビルゲイツ氏は、「ほとんどの人が1年でできることを過大評価し、10年後にできることを過小評価している」と言いました。これが伝統的なソフトウェアの深い学習への置き換えについての感想です。知識が開発者コミュニティに拡散するにつれて、長い進展がありますが、10年後にはほとんどのソフトウェアの仕事はプログラミングを伴わないと予測しています。 Andrejが記憶に残しているように、「[深い学習]はあなたよりも優れています!