Open In Colab   Open in Kaggle

チュートリアル 2: ディープラーニング思考 3

第3週5日目: ゲームのための強化学習 & ディープラーニング思考 3

Neuromatch Academyによる

コンテンツ作成者: Konrad Kording, Lyle Ungar

コンテンツレビュアー: Ella Batty, Shaonan Wang, Gunnar Blohm

コンテンツ編集者: Ella Batty, Shaonan Wang

制作編集者: Ella Batty, Spiros Chavlis


チュートリアルの目標

# @title Tutorial slides
from IPython.display import IFrame
link_id = "2f7ay"
print(f"If you want to download the slides: https://osf.io/download/{link_id}/")
IFrame(src=f"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render", width=854, height=480)

セットアップ

# @title Install and import feedback gadget


from vibecheck import DatatopsContentReviewContainer
def content_review(notebook_section: str):
    return DatatopsContentReviewContainer(
        "",  # No text prompt
        notebook_section,
        {
            "url": "https://pmyvdlilci.execute-api.us-east-1.amazonaws.com/klab",
            "name": "neuromatch_dl",
            "user_key": "f379rz8y",
        },
    ).render()


feedback_prefix = "W3D5_T2"

セクション 1: ディープラーニング思考 3 入門

所要時間の目安: 約3分

このチュートリアルは、ディープラーニング思考シリーズの第3弾です。他の回と同様に、コーディングはありません!代わりに、ニューラルネットワークを使いたいさまざまなシナリオについての短い映像を視聴します。

以下の各セクションは、LyleかKonradのどちらかが特定の問題に対してニューラルネットワークをどのように設定すべきかを考えている短編から始まります。視聴しながら彼らに質問したいことを考えてみてください。そして、LyleやKonradがどんな質問をしているかに注目してください。それはあなたがしたかった質問でしたか?彼らの質問はどのように状況を素早く明確にするのに役立っていますか?

# @title Video 1: Intro to DL Thinking 3
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', '_tGTv3FUBZ4'), ('Bilibili', 'BV11V411g7dm')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_Intro_to_DL_Thinking_3_Video")

セクション 2: 未来

所要時間の目安: 約15分

# @title Video 2: The Future Vignette
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', 'iHUZ0FJH5yM'), ('Bilibili', 'BV1fX4y1n747')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_The_Future_Video")

考えてみよう!1: 未来

物事は時間とともに変化します!機械学習でこの問題にどう対処できるでしょうか?

グループで話し合ってください。行き詰まったら、以下のヒントを1つずつ開いて議論の助けにしてください。ただし、次のヒントを開く前に十分に話し合う時間を取ってください!

ヒント1はこちらをクリック

あなたの生活の中でデータがi.i.d(独立同分布)であるシナリオを思い浮かべられますか?

例を使いましょう。Konradは教えている授業中にトピックに関する質問xを聞き、それぞれの答えyを学ぼうとしています。来年の質問は今年の質問と同じでしょうか?

来年の質問が今年とは異なるとわかったら、Konradは来年の質問に備えて何をすべきでしょうか?

より一般的に、なぜ未来が過去と異なることが重要なのでしょうか?それはi.i.d.とどう関係していますか?

ヒント2はこちらをクリック

つまり、未来は過去とは異なる分布p(X)を持ちます。また、良い答えの分布p(Y)も異なります。結局のところ、ディープラーニングは進化していますし、トレーニングも進化しています。p(X)の良いモデルはディープラーニングの文脈でどのようなものでしょうか?それはどのようにディープラーニングシステムに組み込めるでしょうか?組み込む必要はあるでしょうか?p(Y)はどうでしょう?組み込む必要がありますか?議論の余地はありますが、DLはp(Y|X)を見つけることに関するものです。なぜXの変化を気にする必要があるのでしょう?Yの変化はどうでしょう?

この文脈で、好奇心について話しましょう。p(X)とp(Y)の両方が変化している場合、私たちは何を学びたいでしょうか?おそらく未来でも真であり続けることに焦点を当てたいでしょう。今日真であり未来も真であるものは何でしょう?どのようなものが変わるでしょう?

ヒント3はこちらをクリック

部屋の中の物体は変わりますが、そのアフォーダンス(利用可能性)は変わりません。明日も椅子に座れるでしょう。世界の因果関係は変わりません。例えば、火は未来でも木を燃やします。構成要素も変わりません。例えば、哺乳類は血液、肉、骨から成り立っています。その他のものは常に変わります。この部屋に誰がいるか?誰と話しているか?また、私が気にしない変化もあります。例えば、遠くにある理解できない因果システムなど。だから私たちは未来に良いモデルを持ちたいだけでなく、実際に尋ねられる質問に答えるための良いモデルを持ちたいのです。

解答はこちらをクリック

この現象について論じた論文があります: https://arxiv.org/abs/2201.07372

上記の論文は全文読む価値があります!簡単に言うと、多くのAIは過去の経験を使って未来の予測を行う「回顧的学習」に焦点を当てていると論じています。著者らは、真の知能は「予測的学習」であり、不確実な未来のために内部モデルを更新し、将来の新しいタスクに役立つように学習すると述べています。彼らは予測的学習を定義する4つの関連要素を挙げています。「継続学習は未来に最も役立つと信じる過去の側面を記憶することを可能にします。予測的な制約(バイアスや事前知識を含む)は未来の問題に適用可能な一般的解決策を見つけるのを助けます。好奇心は、これまで遭遇していない状況も含めて、将来の意思決定に役立つ行動を促します。因果推定は、特定の結果のための行動選択を導く関係構造を学習し、これまで観察されていない行動-結果の関係でも対応可能にします。」

議論のポイント: この論文を踏まえて、DLアルゴリズムをどのように設計し直しますか?どの問題が容易でどの問題が難しいでしょうか?

# @title Submit your feedback
content_review(f"{feedback_prefix}_The_Future_Discussion")

セクション 3: コンテキスト内学習

所要時間の目安: 約15分

# @title Video 3: In-context Learning Vignette
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', 'MQLVLBG-6Rk'), ('Bilibili', 'BV1nz4y1n7J5')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_In_context_learning_Vignette_Video")

考えてみよう!2: コンテキスト内学習

グループで話し合ってください。行き詰まったら、以下のヒントを1つずつ開いて議論の助けにしてください。ただし、次のヒントを開く前に十分に話し合う時間を取ってください!

ヒント1はこちらをクリック

コンテキスト内学習とは何でしょう?コンテキストとは基本的にLLMが今持っている文脈の単語のことです。次に何が来るかを予測するために、機械学習の問題を解いていると言えます。これを方程式でどう書きますか?

chatGPTにコンテキスト内学習の問題を解かせてみてください。

ヒント2はこちらをクリック

問題の性質について話しましょう。システムをどう訓練し、それがコンテキスト内学習とどう関係するでしょうか?

メタラーニングは「学び方を学ぶ」システムと定義されます。コンテキスト内学習はメタラーニングの一種でしょうか?

ヒント3はこちらをクリック

トランスフォーマーアーキテクチャはコンテキスト内学習問題の解決にどう役立つでしょう?DLは勾配降下法を使います。コンテキスト内で勾配降下学習はあると思いますか?

解答はこちらをクリック

これらのトピックに関する論文が2つあります:

  1. arxiv:2211.15561
  2. arxiv:2212.10559

上記論文の概要:

論文1: ニューラル系列モデル、特にトランスフォーマーはコンテキスト内学習に驚異的な能力を示します。著者らは、トランスフォーマーベースのコンテキスト内学習者が、活性化に小さなモデルを暗黙的にエンコードし、新しい例がコンテキストに現れるたびにこれらの暗黙的モデルを更新することで、標準的な学習アルゴリズムを暗黙的に実装しているという仮説を調査しています。

論文2: 大規模事前学習済み言語モデルは、少数のデモンストレーション入力-ラベルペアだけで未見の入力のラベルを予測できる優れたコンテキスト内学習(ICL)能力を持ち、追加のパラメータ更新なしに動作します。しかし、ICLの基礎メカニズムは不明です。本論文は言語モデルをメタオプティマイザーと見なし、ICLを暗黙的な微調整の一形態と概念化し、トランスフォーマーの注意機構が勾配降下最適化の二重形態に従うことを明らかにします。実験的比較により、ICLは予測、表現、注意の挙動において明示的な微調整と類似した性能を示し、メタ最適化に触発されたモメンタムベースの注意の導入は将来のモデル設計の可能性を示しています。

議論のポイント: これらの論文を踏まえ、ICLのより堅固な理論をどう構築できますか?現在理解されていることは何ですか?ICLについてどのような定理を証明できそうですか?アーキテクチャ設計によってICLを改善できると期待できますか?

# @title Submit your feedback
content_review(f"{feedback_prefix}_In_context_learning_Discussion")

セクション 4: 記憶

所要時間の目安: 約15分

# @title Video 4: Memories Vignette
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', 'SDJv_hnRrl0'), ('Bilibili', 'BV1fs4y1r7Je')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_Memories_Vignette_Video")

考えてみよう!3: 記憶

グループで話し合ってください。行き詰まったら、以下のヒントを1つずつ開いてください。ただし、次のヒントを開く前に十分に話し合う時間を取ってください。あなたは今、本物のディープラーニング科学者です。答えは簡単ではありません。

ヒント1はこちらをクリック

エピソード記憶をどう定義しますか?

手続き記憶をどう定義しますか?

意味記憶をどう定義しますか?

ヒント2はこちらをクリック

ここで興味深いのはエピソード記憶です。例えば、あなたと親友は昨日の夜一緒に夕食をとったという事実を両方知っています。エピソード記憶をディープラーニングシステムにどう組み込みますか?エピソード記憶に勾配降下法は使えますか?

ヒント3はこちらをクリック

エピソード記憶は結局のところ絶対的な真実に関するものです。だから勾配降下法とどう関係するかは明確ではありません。読み取りに勾配降下法を使うのは簡単に想像できます。では、巨大な黒板があったとしたら何を書きますか?いつ/どうやって消しますか?

解答はこちらをクリック

いくつか面白い論文があります。
https://arxiv.org/abs/1410.5401,
https://arxiv.org/abs/1805.07603,
https://arxiv.org/abs/1703.03129

上記論文の概要:

論文1: 現代の機械学習は複雑なデータのモデリングに成功していますが、論理的なフロー制御や外部メモリの利用はほとんど無視されています。リカレントニューラルネットワーク(RNN)は長期間にわたる複雑なデータ変換を実行でき、チューリング完全で任意の手続きをシミュレート可能です。著者らはNeural Turing Machine(NTM)を提案し、標準的なリカレントネットワークに大きくアドレス可能なメモリを付加し、人間の作業記憶に似た選択的読み書きの注意機構を利用します。NTMは勾配降下法で訓練可能で、プログラム学習の実用的なメカニズムとなります。

論文2: 深層強化学習(RL)は深層ニューラルネットワーク(DNN)を利用して大きく進歩しましたが、サンプル効率が悪い問題があります。著者らは生物学的に着想を得たエピソード記憶を利用したEpisodic Memory Deep Q-Networks(EMDQN)を提案。実験結果はEMDQNが通常のDQNや他のエピソード記憶ベースのRLアルゴリズムより優れたサンプル効率を示し、Atariゲームで最先端の性能を達成するのにDQNの5分の1のインタラクションで済むことを示しています。
論文3: 既存のメモリアグメント型深層ニューラルネットワークは生涯学習やワンショット学習で希少イベントの記憶に限界があります。著者らは高速近傍探索アルゴリズムを用いた大規模生涯メモリモジュールを導入。モジュールは完全微分可能で追加の監督なしにエンドツーエンドで訓練可能で、様々なニューラルネットワークに統合可能。Omniglotデータセットのワンショット学習で最先端性能を示し、大規模機械翻訳のリカレントニューラルネットワークで生涯ワンショット学習を可能にします。

議論のポイント: これらの論文を踏まえ、どのような望ましい記憶の側面を既に構築できますか?それらは人間の記憶とどう異なりますか?人間の記憶の機敏さにどれほど近づいていますか?

# @title Submit your feedback
content_review(f"{feedback_prefix}_Memories_Discussion")

セクション 5: 複数の情報源

所要時間の目安: 約15分

# @title Video 5: Multiple Information Sources Vignette
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', '_I_m2n2yz4Q'), ('Bilibili', 'BV1Nh4y1u7FD')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_Multiple_Information_Sources_Vignette_Video")

考えてみよう!4: 複数の情報源

グループで話し合ってください。行き詰まったら、以下のヒントを1つずつ開いてください。ただし、次のヒントを開く前に十分に話し合う時間を取ってください。あなたは今、本物のディープラーニング科学者です。答えは簡単ではありません。

ヒント1はこちらをクリック

いくつかのタスクを考えてみてください。それらを解決したい場合、どのウェブページを使いますか?それらをどう組み合わせますか?DLシステムに同じことをさせるにはどうすればよいでしょう?

ヒント2はこちらをクリック

複数の情報源がある場合、それらはどれほど相乗効果がありますか?複数の情報源からの情報をどう組み込めますか?あるモデルから得られるものを要約する方法はありますか?

ヒント3はこちらをクリック

英語の言語とクエリはそのようなサービスとやり取りする方法の一つです。ウェブページを質問できるものとして考えてみてください。

解答はこちらをクリック

最近の関連プロジェクトのリストです:

  1. Auto GPT
  2. arxiv:2302.14045
  3. PaLMe

上記論文の概要:

言語、多モーダル知覚、行動、世界モデルの大きな融合は人工汎用知能への重要なステップです。本研究では、一般的なモダリティを知覚し、コンテキスト内学習(少数ショット)、指示に従う(ゼロショット)が可能な多モーダル大規模言語モデル(MLLM)を紹介します。実験結果は、提案モデルが言語理解、生成、OCR不要のNLP、知覚-言語タスク、視覚タスクで印象的な性能を示し、MLLMがクロスモーダルトランスファーの恩恵を受けることを示しています。

議論のポイント: モダリティ間で情報をどう組み合わせるべきでしょう?なぜ組み合わせることが役立つのでしょう?それは科学の未来に何を意味しますか?

# @title Submit your feedback
content_review(f"{feedback_prefix}_Multiple_Information_Sources_Discussion")

セクション 6: ロボティクスのための言語

所要時間の目安: 約15分

# @title Video 6: Language for Robotics Vignette
from ipywidgets import widgets
from IPython.display import YouTubeVideo
from IPython.display import IFrame
from IPython.display import display


class PlayVideo(IFrame):
  def __init__(self, id, source, page=1, width=400, height=300, **kwargs):
    self.id = id
    if source == 'Bilibili':
      src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'
    elif source == 'Osf':
      src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'
    super(PlayVideo, self).__init__(src, width, height, **kwargs)


def display_videos(video_ids, W=400, H=300, fs=1):
  tab_contents = []
  for i, video_id in enumerate(video_ids):
    out = widgets.Output()
    with out:
      if video_ids[i][0] == 'Youtube':
        video = YouTubeVideo(id=video_ids[i][1], width=W,
                             height=H, fs=fs, rel=0)
        print(f'Video available at https://youtube.com/watch?v={video.id}')
      else:
        video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,
                          height=H, fs=fs, autoplay=False)
        if video_ids[i][0] == 'Bilibili':
          print(f'Video available at https://www.bilibili.com/video/{video.id}')
        elif video_ids[i][0] == 'Osf':
          print(f'Video available at https://osf.io/{video.id}')
      display(video)
    tab_contents.append(out)
  return tab_contents


video_ids = [('Youtube', 'nLxzECu12IY'), ('Bilibili', 'BV1FF411R7BG')]
tab_contents = display_videos(video_ids, W=854, H=480)
tabs = widgets.Tab()
tabs.children = tab_contents
for i in range(len(tab_contents)):
  tabs.set_title(i, video_ids[i][0])
display(tabs)
# @title Submit your feedback
content_review(f"{feedback_prefix}_Language_for_Robotics_Video")

考えてみよう!5: ロボティクスのための言語

ヒント1はこちらをクリック

ロボティクスの問題を考えてみましょう。例えば食器洗い機の片付け。これをいくつかのサブ問題に分割できますか?いくつありますか?それらはどれほど複雑ですか?

ヒント2はこちらをクリック

サブ問題を見ると、それらはどれほど複雑ですか?各サブ問題を説明する良い方法は何でしょう?もしロボット制御AIシステムがそのような説明を持っていたら、どれほど役立つでしょう?

ヒント3はこちらをクリック

もし大規模言語モデルを使ってRLシステムとやり取りするとしたら、それはどれほど役立つでしょう?なぜ言語はこのタスクにとても役立つのでしょう?

解答はこちらをクリック

この素晴らしい論文集をご覧ください: Awesome-LLM-Robotics

githubに掲載されている論文の概要:
これらの論文は推論、計画、操作、指示とナビゲーション、シミュレーションフレームワークなどのトピックを扱っています。
いくつかの論文はGPT-3、BERT、CLIPなどの事前学習済みモデルを使い、自然言語指示をロボットの行動にマッピングしたり、状況に応じたロボットタスク計画を生成したり、言語をロボットのアフォーダンスに結びつけたりしています。
いくつかの論文は言語、視覚、行動を組み合わせた新しいモデルや手法を提案しています。例えば、RT-1は大規模データから学習し新環境に一般化できるロボティクストランスフォーマーです。PaLM-Eは3D世界の物体やエージェントと対話できる具現化多モーダル言語モデルです。LLM+Pは大規模言語モデルに最適計画能力を付与する手法です。
また、いくつかの論文はコード、ウェブサイト、Colabを提供し、結果の再現やテストが可能です。例えば、Code-As-Policiesは言語モデルプログラムを使った具現化制御を、Socraticはゼロショット多モーダル推論を言語で構成します。

議論のポイント: ロボットのコーディングは今後どう変わるでしょう?大きな未解決問題は何でしょう?

# @title Submit your feedback
content_review(f"{feedback_prefix}_Language_for_Robotics_Discussion")

まとめ

所要時間の目安: 約2分