テクノロジーが急速に進歩するにつれ、人工知能プログラミングはますます成熟しつつあります。その開発は、人間がよりインテリジェントな機械を作るのに役立つのでしょうか?
プログラム合成とは、仕様に基づいてプログラムを自動的に生成する概念を指します。プログラムの検証とは異なります。プログラム検証は、正式な証明に基づいて、プログラムが正式な仕様に従って動作するかどうかを検証します。 1957 年、コーネル大学で開催された記号論理学会の夏季会議で、アロンゾ・チャーチは数学的要件に基づいたプログラムを合成しようと試みました。 1960 年代に、 AI 研究者はプログラム合成の概念を詳しく説明し、それを一般的な AI 研究に適用しました。 近年、ディープラーニングにより人工知能がタスクを達成する方法が変革しました。この進歩により、研究者たちは人間が得意とするタスクを人工知能に教えようと試みるようになった。重要な分野の一つは、人間が得意とする種類のタスクを人工知能が学習できるようにするメタ学習システムを作成することです。ニューラル プログラム合成とロボット工学に関する研究では、当初、プログラム合成を使用してロボットにタスクを正確に実行する方法を教えることができることが実証されました。 プログラム合成は、コンピュータプログラミングの実装を容易にするために最もよく使用されます。 AutoProf、FlashFill、Storyboard プログラミング ツールなどのアプリケーションを使用すると、学生はコードを記述せずに特定の概念を直接操作することで、より直感的な方法でプログラミングできます。 AI 研究者の François Jolet 氏は、論文「知能テスト」の中で、知能テストの問題をモデルにした ARC タスクを解決するための手法としてプログラム合成を紹介しています。 ジョレット氏は、自身の論文についてザ・ヴァージ誌のインタビューで次のように語った。「重要な点は、タスクが、これまで知られていなかった多数の問題にわたって新しいスキルを習得するメタタスクでない限り、どんなタスクでも高いスキルを習得することは知性の兆候ではないということです。まさにそれが、私が知性の基準と考えているものです。」 基本的に、システムの知能は、Chollet 氏が言うように、次の方法でテストする必要があります。「これは、システムがこれまで知らなかった新しいタスクのみを使用し、タスクの開始時にシステムの事前知識を測定し、システムのサンプリング効率 (つまり、タスクを実行するために学習するために必要なデータの量) を測定することを意味します。特定のスキル レベルに到達するのに必要な情報 (事前知識と経験) が少ないほど、そのシステムはよりインテリジェントです。今日の AI システムはまったくインテリジェントではありません。」 彼は後に、ARC タスクを Kaggle の抽象および推論問題チャレンジで解決すべき問題として投稿しました。この問題を解決するには、プログラミング合成の力を活用して、これまで知られていなかった ARC タスクを学習する必要があります。 プログラミング合成問題の分解解決不可能と思われる問題はすべて、まず小さな問題に分解することができます。合成プログラミングを学んだことがない場合は、作業を開始する前に、問題が何であるか、そしてそれをどのように解決するかを理解してください。 1. プログラムスペースの問題 すべてのプログラミング合成問題には、最終的にはプログラム空間全体の検索が含まれます。検索方法は有効である必要があります。ツリー アルゴリズムを使用する場合、このツリーの枝を切り落とす方法が必ずあると考えてください。そうしないと、ツリーが成長するにつれて、無限に成長する可能性があります。 2. ユーザーの意図の問題 ユーザーの意図をテストするロジックの間には、曖昧な領域が存在することがよくあります。ユーザーが環境とやりとりすると、発見が起こります。ユーザーが参加すると、新しいデータによって、ユーザーの目にはまったく新しい問題が映るようになるかもしれません。 Kaggle チャレンジを成功裏に解決するには、必然的にこれら 2 つの問題を解決する必要があります。 手続き型合成のためのユーティリティPython では、Z3 はプログラム合成用の Python パッケージです。こちらはAdrian SampsonによるZ3の優れたチュートリアルです。 彼の記事の例は次のとおりです。 次のように汎用ソルバーを構築します。 Adrian Sampson のブログからのコード 次に、実行する数式を定義します。 Adrian Sampson のブログからのコード 実行: print(solve(formula)) を実行して、任意の問題を解決します。詳細と例については彼のチュートリアルをお読みください。 手続き型合成についてさらに詳しく知りたいですか?以下に、手続き型合成に関連する学習リソースをいくつか示します。 1. プログラム合成のためのディープラーニング https://sunblaze-ucb.github.io/program-synthesis/index.html 2. ディープコーダー: プログラムの書き方を学ぶ https://openreview.net/pdf?id=ByldLrqlx 3. ディープラーニングプログラム合成Microsoft Research https://www.microsoft.com/en-us/research/blog/deep-learning-program-synthesis/ François Jolet が提案した Kaggle チャレンジの解決に取り組んでいる場合、この記事が役立ちます。 「いかなる問題も、それを生み出したのと同じレベルの意識では解決できない。」 - アルバート・アインシュタイン あらゆる「不可能」な課題は、問題解決を決してあきらめなかった人々によって一歩一歩解決されました。 さあ、君は最高だよ! |
今日はカロリーを消費しましたか?近年、生活水準の向上や生活習慣の変化に伴い、肥満は徐々に多くの人々を...
[[412069]]最近、GitHub は、人工知能を使用してコードを合成するモデルを生成する Co...
今日の若者は、「エモ」という言葉をキャッチフレーズとして使うことに慣れているが、本当の「うつ病」が何...
導入データサイエンスの分野が進歩するにつれ、複雑な自然言語を処理および生成できる高度な AI システ...
最近、浙江省の高温が話題になっています。継続的な高温と干ばつの悪影響を緩和するために、浙江省の多く...
[51CTO.com クイック翻訳] 権威ある調査によると、2017 年に DevOps は市場で ...
人工知能は画期的であり、時には衝撃的です。私たちは、効率性、自動化、スマートな予測に関する素晴らしい...
Bard と ChatGPT は、それぞれ Google AI と OpenAI によって開発された...
データを機械学習モデルに渡すときには、データを正規化する必要があることはわかっています。データの正規...
研究者が最適な機械学習モデルを自動的かつ効率的に開発できるようにするために、Google は特定の分...
IT Homeは1月23日、Googleが最近、大規模言語モデル向けに特別に設計されたASPIREト...