yoppa.org


人工知能と創作 – オリエンテーション

height:480
Kate Crawford, Vladan Joler, Anatomy of an AI System (2018)

この講義では、生成AIの基礎から応用までを幅広く学び、創作におけるAIの可能性を探求します。まず、AIとは何か、ニューラルネットワークや機械学習、そしてディープラーニングといった基本概念を理解することから始めます。その後、プログラミング支援ツールやテキスト、画像、音楽、映像生成などの実例を通して、AIがどのように創作に活用できるかを体験します。AIによる自動化や生成技術がアートやデザインの現場にどのような変革をもたらすのかを探ると同時に、その限界や課題についても批判的に考察します。最終的には、各自が生成AIを活用した創作プロジェクトを企画・発表し、その成果を通じて未来の創作の可能性を展望します。

本日のスライド資料

講義概要

シラバス紹介

AIの技術的進歩は凄まじく世の中に多大な影響を与えています。アートやデザインといった創作の分野でも無視することのできない存在となっています。この講義は人工知能、特に生成AIの基礎から応用までを探求し、AIを用いた創造的作品を作成するプロセスを探求していきます。まず始めにGoogleのTeachable Machineなどのツールを活用しながらニューラルネットワークや機械学習といったAIの基本を学びます。さらにプログラミング支援、テキストと画像生成、音楽、インタラクティブメディアの生成、映像生成といったAIを活用した創作について掘り下げていきます。ここまでの内容を元に中間発表を行った上で、後半は各受講者が生成AIを用いた創作プロジェクトを企画します。それぞれが企画したプジェクトについて発表し、それを元にディスカッションを行い最終プロジェクトの作成に取り組みます。最後にそれぞれの作品を元にした展覧会を企画し、作品を展示し講評会を行います。

参考文献

徳井直生. “創るための AI: 機械と創造性のはてしない物語.” (2021).

height:480

美術手帖 2024年10月号[AIと創造性]

height:480

Lev Manovich, “Artificial Aesthetics: Generative AI, Art and Visual Media” (2024)

height:480

成績について

履修態度と課題の制作・プレゼンテーションを総合的に評価する。

  • 中間課題と最終課題を出題予定
  • 課題の評価と各回の講義内での評価で総合的に評価する

イントロダクション

Her (映画)

冒頭部分を視聴

height:480

Herの世界は既にChat GPTで実現されている! https://openai.com/chatgpt/download/

height:480

参考: OpenAIが示した「GPT-4o」の進化と、映画『her/世界でひとつの彼女』との共通項

疑問 – 生成AIを使って良いの?

「人工知能と創作」の講義ではAIテクノロジー、特に生成AIを積極的に使用していきます。まず始めにこの講義における生成AIへのスタンスを説明します。

※ この意見はあくまでこの講義の担当である田所の個人的なものです。生成AIの使用の可否はそれぞれの講義や実習の担当の教員の指示に従ってください。

生成AIの登場は、約30年前にインターネットでの検索エンジンのサービスが開始した当時と良く似ている

  • Yahoo!(1994)、Infoseek(1996)、Google(2000)
  • 今までは想像もできないことだった
  • 多くの知識が一般に開放された
  • それまでの常識 (勉強、調査、研究) を覆した
  • 検索サービス開始当初は反対する人も多くいた
    • 倫理的な視点「ネット検索はずるい」「コピペでレポート」
    • 学習効率的な視点「ネットで調べても勉強にならない」
    • 著作権的な視点「勝手に情報収集」
  • 「政府で規制すべき!」という人も

現在はどうなったか?

  • ネット検索はあまりにも強力で利便性が高い
  • 人類はもう元の社会には戻れない
  • いろいろな問題はありつつ、積極的に利用する方向へ
  • ネット検索を使えないことのほうが問題に

生成AIは検索よりもさらに強力な可能性を秘めている

  • 「検索」から「相談」へ
  • 膨大なデータから新たなものを創造(生成)可能
  • 様々なメディアに対応 (文章、画像、音楽、映像、プログラム)
  • 誰でもすぐに「巨人の肩の上に立つ」ことが可能

ただし問題点も…

  • 書かれている内容には嘘が含まれている可能性 → ハルシネーション(Hallucination)
  • 情報漏洩 – 機密情報や個人情報などを安易にChatGPTに送信することは危険
  • 著作権を侵害しているという問題提起
  • 社会に対する影響 (教育・研究活動)
  • 「生成AIはチート(いんちき、ずるい)」という意見もあり

「人類はこの数ヶ月でもうすでにルビコン川を渡ってしまったのかもしれない」 https://utelecon.adm.u-tokyo.ac.jp/docs/20230403-generative-ai

  • どうしたら問題を生じないようにできるのか、その方向性を見出すべく行動することが重要
  • その活用の可能性を積極的に探る

生成AIは今後アートやデザインといった創作の分野でも無視できない存在となっていくのは確実

  • 「人工知能と創作」では生成AIに正面から取り組んでいきたい
  • まだ非常に新しい分野
    • いろいろ試行錯誤しながら…
    • 今年やった内容が来年にはもう古くなっている可能性もあり
    • まだ誰もやっていなかった新たな作品を創作できる可能性大

John Maeda, The Design in Tech Report 2017 

人工知能と創作

この講義のテーマ「人工知能と創作」に関する2つの映像資料を視聴。

How This Guy Uses A.I. to Create Art | Obsessed | WIRED
AI Art: How artists are using and confronting machine learning | HOW TO SEE LIKE A MACHINE

参考資料

Refik Anadole, Unsupervised — Machine Hallucinations — MoMA (2023)

height:480

KATE Crawfordt, Trevor Paglen, Training Humans

height:480

Trevor Paglen, Behold these Glorious Times! (2020)

height:480

Kate Crawford, Vladan Joler, Anatomy of an AI System (2018)

height:480

Kate Crawford, Vladan Joler, Calculating Empires: A Genealogy of Power and Technology, 1500-2025

height:480

ポイント

  • 生成AIの技術はとても強力で新たな表現を生みだす可能性に満ちている
  • しかし、その背後には様々な問題も存在する
    • データの偏り
    • 巨大企業による独占
    • 大量なエネルギーの消費
    • プライバシーの問題
    • 著作権侵害のリスク
    • フェイクニュース
    • AIのブラックボックス化
    • …etc.
  • 生成AIを完全に拒否するわけではない
  • しかし無批判に全て受け入れるのでもない
  • 生成AIの利便性を享受しつつ、その問題や構造について批判的に考えていきたい
  • そのためには、生成AIの技術について正確なイメージを持つ必要 (!= 魔法)

次回までの課題

生成AIを駆使して調査をする練習を兼ねて、生成AIを用いて生成AIについて調べてみましょう。

次週までに以下の内容について調査して下記のオンラインフォームから調査した内容を記述してください。

  • 課題1: 以下の4つの用語について、それぞれの定義を調査して回答してください。
    1. AI (人工知能)
    2. 機械学習、マシーンラーニング
    3. 深層学習、ディープラーニング
    4. 生成AI、ジェネラティブAI
  • 課題2: ChatGPTなどで用いられている「GPT」という用語は何なのか、以下の2つの内容を調査してください。
    1. GPTとは何か?
    2. 「G」「P」「T」それぞれの文字が指している英単語とその意味

※ 調査には生成AIを用いて構いません!

課題回答フォーム (締切: 10/10まで!)

参考: 調査に有効な生成AIサービス

ChatGPT

https://chat.openai.com

  • OpenAIの提供する人工知能チャットボット
  • 登録無しでも使用できるようになった (GPT-3.5)
  • ただし有料版のGPT-4のほうが格段に強力
  • 画像生成、コード生成なども可能

Microsoft Copilot

https://copilot.microsoft.com

  • Microsoftによるサービス
  • OpenAI同様、GPTを使用している
  • Bing検索と組み合わせたネット情報の調査が得意
  • 画像生成、コード生成なども可能

Claude AI

https://claude.ai

  • 会話の流暢さはChatGPTやCopilotを凌ぐ印象
  • ややハルシネーションを起こしやすい?
  • 用途によっては有用

アンケート

本日の講義に参加した方は以下のアンケートに答えてください。(出席の記録も兼ねているので、必ず回答をお願いします!)


TouchDesigner入門(1) – バナナを回す! 基本操作とTOPの基本

今回からいよいよTouchDesignerを使って映像を制作していきます。まず始めにTouchDesignerのインストールと使用のためのキーが正しく登録できているか確認します。その上で、今回はTDSW YouTube Academyの映像を教材にして、基本操作を習得していきます。

スライド資料

サンプルファイル

本日の映像教材

【Introduction to TouchDesigner】Let’s rotate Banana in 10min ! #00
【 TouchDesigner初級講座 】基本操作と基本のTOP編 #01

本日の課題

チュートリアルを終えたら、以下の課題を行ってください!

課題1: バナナの画像を別の画像に変更して回転させる!

  • ヒント: movieFilein TOPのパラメーターで変更する

課題2: 回転する動きを、0°〜360°のくりかえしではなく以下の動きに

  • -180° 〜 180°
  • 180° 〜 -180°
  • 以上をくりかえす (シーソーのような動きに)
  • ヒント: LFO CHOPのパラメータを変更

本日の課題

講義資料を参考に以下の課題とアンケートに回答してください。次週水曜日までを締切とします。


Strudelはじめの一歩

スライド資料

参考映像

ドラムマシン (リズムマシン) について。

16 Legendary Beats – A short history of the 808 🟥🟧🟨⬜ | Drum Patterns Explained
A short history of the 909 in 16 songs ⬜🟧 from TECHNO and HOUSE to POP | Drum Patterns Explained
Jeff Mills Exhibitionist 2 Mix 3

この動画で紹介されているTR-808を使用した曲のプレイリストをSpotifyで作成してみました!

Strudelについて

Strudelとは

Strudel (シュトゥルーデル)

  • 語源: 薄い生地で具材を包んだパン
  • なぜこの名前にしたのかは不明

Strudelの特徴

  • ダイナミックな音楽作品を表現力豊かに作成
  • TidalCyclesのJavascript版
  • しかし、JavaScriptやTidalCyclesの知識は不要
  • Strudel REPL (https://strudel.tidalcycles.org/) のサイトにアクセスしてすぐに利用可能

Strudelで何ができる?

  • ライブコーディング: リアルタイムでコードを使用して音楽を作成
  • アルゴリズム作曲: Tidalの強力なパターン操作の機能を活用して、アルゴリズミックに音楽を作曲
  • 教育: 誰でもすぐに利用できるので、音楽とプログラムを同時に学べる!
  • 他の音楽制作環境と統合: MIDI、OSCなどを使用して外部の環境と連動できる

コード例

stack(
  // ドラム
  s("bd,[~ <sd!3 sd(3,4,2)>],hh*8")
    .speed(perlin.range(.8, .9)), // ランダムなサンプル速度の変化
  // ベースライン
  "<a1 b1*2 a1(3,8) e2>"
    .off(1 / 8, x => x.add(12).degradeBy(.5)) // ランダムなオクターブジャンプ
    .add(perlin.range(0, .5)) // ランダムなピッチの変化
    .superimpose(add(.05)) // 2つ目の、わずかにデチューンされた音声を追加
    .note() // "note"で囲む
    .decay(.15).sustain(0) // 各音符を同じ長さにする
    .s('sawtooth') // 波形
    .gain(.4) // 音量を下げる
    .cutoff(sine.slow(7).range(300, 5000)), // カットオフを自動化
  // コード
  "<Am7!3 <Em7 E7b13 Em7 Ebm7b5>>".voicings('lefthand')
    .superimpose(x => x.add(.04)) // 2つ目の、わずかにデチューンされた音声を追加
    .add(perlin.range(0, .5)) // ランダムなピッチの変化
    .note() // "note"で囲む
    .s('sawtooth') // 波形
    .gain(.16) // 音量を下げる
    .cutoff(500) // 固定カットオフ
    .attack(1) // ゆっくりフェードイン
).slow(3 / 2)
  • さらに詳しく: Strudel REPLにアクセスし、シャッフルを押してランダムにサンプルを聞いてみる

サウンド機能入門

はじめの一歩

  • 以下のコードを入力
sound("casio")
  • 音の操作
    • テキストフィールドをクリック
    • ctrl+enterを押して再生
    • casioからmetalに変更してみる
    • ctrl+enterで更新
    • ctrl+.で停止
  • 他のサウンドも試してみる!
    • 例: insect wind jazz metal east crow casio space numbers

サンプル番号をコロン (:) で指定

sound("casio:1")
  • 指定したサウンド(この例だとcasio)の種類を変更
  • 何も指定しない場合は :0 と同じ

ドラムサウンド

ドラムサウンド基本

sound("bd hh sd oh")
  • 始めから様々なドラムセットの音が入っている
  • 2つの文字はドラムセットの様々なパートを省略している
    • bd = bass drum (バスドラム)
    • sd = snare drum (スネアドラム)
    • rim = rimshot (リムショット)
    • hh = hihat (ハイハット)
    • oh = open hihat (オープンハイハット)
  • 文字を書き換えて様々なドラムパターンを作ってみよう!
    • 実際に音を聞きながら

応用: ドラムセットを切り替える

sound("bd hh sd oh").bank("RolandTR909")
  • .bank() を使用してドラムセットごと切り替えられる
  • その他にも以下のようなドラムマシンがあるので試してみよう!
    • AkaiLinn
    • RhythmAce
    • RolandTR808
    • RolandTR707
    • ViscoSpaceDrum
  • コピペすると楽!

シーケンス

  • シーケンス: 反復進行 (はんぷくしんこう sequence)
  • 同じ音のまとまりを何度も繰り返すこと
  • Strudelでは様々な方法でシーケンスを組み立てられる

シーケンス基本

sound("bd hh sd hh")
  • これまでやってきた基本
  • スペースで区切ることでシーケンス内で複数のサウンドを再生できる

沢山の音を鳴らす

sound("bd bd hh bd rim bd hh bd")
  • シーケンスが長い(たくさんの音がある)ほど速くなる
  • シーケンスの中身が1サイクルに押し込められるため

テンポを変更する

sound("bd bd hh bd rim bd hh bd").cpm(40)
  • 1つの方法は cpm() を使用する方法
  • cpm
    • cycle per minutes
    • 1分あたり何サイクルするか、という単位
  • その他にも方法があるがまた後述

休符

sound("bd hh ~ rim")
  • ~ は休符(音を出さないパート)をあらわす

サブシーケンス

sound("bd [hh hh] sd [hh bd]")
  • [] で囲うとサブシーケンスが作成される
  • シーケンスの1要素の中をさらに分割するイメージ

かけ算 – スピードアップ

sound("bd hh*2 rim hh*3")
  • 「* (かけ算)」記号はそのシーケンス内で分割してくりかえす
  • スピードアップ(カットアップ?)

シーケンスのスピードアップ

sound("bd [hh rim]*2")
  • サブシーケンスのかけ算も可能

高速かけ算

sound("bd hh*16 rim hh*8")
  • かけ算の数を大きくすると分割が細かくなる
  • 徐々に一定の音程に聞こえてくる

サブ・サブシーケンス

sound("bd [[rim rim] hh]")
  • [] を入れ子構造にすることで、サブシーケスのサブシーケンスをつくる

パラレルに演奏

sound("hh hh hh, bd casio")
  • コンマ(,)で区切って2つのシーケンスを記述する
  • パラレルに2つのシーケンスが演奏される
sound("hh hh hh, bd bd, ~ casio")
  • いくつでも増やせる
sound("hh hh hh, bd [bd,casio]")
  • サブシーケンスの中をパラレルに演奏

サンプル番号でシーケンス

n("0 1 [4 2] 3*2").sound("jazz")
  • このコードは以下のコードと同じ
sound("jazz:0 jazz:1 [jazz:4 jazz:2] jazz:3*2")

アンケート

本日の講義を履修した方は以下のアンケートに回答してください。

※ 旧カリ「サウンドプログラミング」「環境情報デザイン」で履修の方はこちら


オリエンテーション

「デザインとプログラミング」初回は、まずこの講義の概要と進め方について説明していきます。

その後は「なぜプログラミングが必要なのか?」という問いに対する回答として「ハイブリッドになろう」というテーマでプログラマーの歴史について解説します。さらにクリエイティブコーディングの開発環境について解説します。

最後に次回までの課題について説明して本日は終了です。

スライド資料

関連リンク

次回までの課題

1 まず今後の講義で使用する開発環境を準備していきます。

2. 作品を共有するためのプラットフォームに加入します

3 最後に以下のアンケートに回答してください

以上3点です! 締切は次回の授業の前日、2024年10月10日までとします!


サウンドプログラミング – イントロダクション

サウンドプログラミングの初回はオリエンテーションを行います。まずこの講義全体の概要と、講義の進め方、成績の基準、履修上の注意などの情報について説明します。

概要について理解した上で、まず始めにこの講義では「サウンドプログラミング」をどのように捉え、どういったアプローチで創作していこうと考えているのかを、これまでのコンピュータ音楽の歴史を踏まえながら解説します。また、講義前半で主に使用するStrudelについての導入を行います。

スライド資料

映像資料: Algorave Generation | Resident Advisor

サンプルプログラム

Strudel のエディターに1行ずつコピペして使用してください。

// まずは手拍子
sound("cp")

// 手拍子2回
sound("cp cp")

// 「*」で回数を表現
sound("cp*4")

// 様々な音の組み合わせ
sound("bd cp bd hh")

// さらに複雑に
sound("bd cp*2 bd hh*4")

// タメを入れるとノリ(グルーブ)が生まれる!
sound("bd cp*2 [~ bd] hh")

// 2回に1度演奏
sound("bd cp <~ bd> hh")

// 複雑なパターンへ
sound("bd cp*2 <bd [~ bd]> <hh hh*2 hh hh*4>")

// 複数の拍子を同時演奏(ポリリズム)
sound("[bd cp*2 cp, bd cp bd hh*3]")

// 複数の拍子をずらしながら演奏(ポリミーター)
sound("{bd cp*2 cp, bd cp bd hh*3}")

アンケート

本日の授業に参加した方は以下のアンケートに回答してください。

※ 旧カリ「サウンドプログラミング」「環境情報デザイン」で履修の方はこちら