第6回: イントロ,AI概要

第6-10回の概要

第6-10回では,主にAIがとりまく状況を社会的な観点から捉えます.AIによってどのようにデザインやアートの表現が押し広げられてきたか歴史を振り返って位置づけつつ,最適化テクノロジーとしての危険性などにも触れていきます.
最終的にはAIが使われているサービスや作品,プロダクトなどのシステムを完全には理解せずとも,なぜAIが使用されているのかという点においては理解できるようになるでしょう.

内容

  1. イントロ,AIに触れてみる
  2. 監視社会とデザイン
  3. コンヴィヴィアリティとデザイン
  4. 見立てとデザイン
  5. 複雑性とデザイン

教員紹介

青木 聖也

多摩美術大学情報デザイン学科非常勤講師
情報科学芸術大学院大学(IAMAS)非常勤講師
慶應義塾大学環境情報学部非常勤講師
武蔵野美術大学通信教育課程デザイン情報学科デザインシステムコース非常勤講師
backspacetokyo所属
IAMAS修了.アーティスト.Scott Allenとして活動中.投影装置・映像メディアに関する作品を制作.
詳細は以下のBiographyを参照.
https://scottallen.ws/biography

AIとは

昨今では,AIや人工知能という言葉を毎日のように目にしますが,今現在完全なAIというものは存在しません.
ですが,AIには約60年ほどの歴史があり,着実に発展を遂げてきました.まずは,これまでAIがどのような経緯で発展してきたか,その歴史を紐解いてみましょう.

歴史的側面

まず,以下の画像を見てください.AI研究は,時代の流れに伴いブーム期と冬の時代を繰り返して発展してきました.このブーム期は全部で3つあり,それぞれ第1次AIブーム,第2次AIブーム,第3次AIブームと呼ばれています.現在は,第3次AIブームの渦中です.

AIの歴史

(松尾豊『人工知能は人間を超えるのか ディープラーニングの先にあるもの』KADOKAWA 発行 より引用)

起源

AI研究が本格的に始まったのは,1956年に行われたダートマス会議という会議がきっかけとされています.この会議は,ジョン・マッカーシーという科学者が主催し,他にもマービン・ミンスキーやクロード・シャノンといった科学者等が参加しました.そしてこの会議の提案書において,人類史上初めて人工知能という用語が使われたと言われています.

この会議の提案書では,人間の知的な活動を機械をシミュレートするための研究を進めるといった旨の内容が記載されていました.今は人間にしか解けない問題を機械でも解けるようにする,機械が自ら学習できるようにする,など現在のAIのイメージに近い内容がすでに構想されていました.

そしてこのダートマス会議以降,第1次AIブームが訪れます.第1次ブームでは,推論と探索が中心的に研究されました.ここでの推論とは,人間の思考パターンのことを指します.人間の思考パターンを分解し,問題に対して適切なパターンを探索することで,機械に人間と同じように思考することを目指しました.その成果として,パズルや迷路を人間よりも高速に解くことができるようになりました.しかし,問題もありました.パズルのようなルールが明確な問題に対しては成果を発揮しましたが,それ以外の問題に対しては成果を発揮することができませんでした.その結果,AI研究は一度目の冬の時代へと突入していくことになります.

エキスパートシステム

その後1980年代より,AIは第2次ブームへと突入します.第2次ブームでは,機械に知識を入れるというアプローチで研究が進み,エキスパートシステムというシステムが生まれました.エキスパートシステムではまず,機械に専門家の知識をデータとして入力します.データを入力した後は,第1次ブームで培った推論システムと組み合わせることで,機械は専門家と同じような役割を担うことができるようになります.このエキスパートシステムは医療や金融など様々な分野での応用が期待されました.

しかし第1次ブームの時と同じく,第2次ブームにおいても問題が発生します.知識を機械に入力していくことでエキスパートシステムを構築していきますが,入力されるデータが膨大になりルールの量が増えていくにつれ,ルール同士の一貫性が失われ矛盾が発生してきました.また,私たち人間が普段曖昧に使用している言葉を機械にどのように入力すればいいのか,その難しさが再認識されることとなりました.例えば,「なんとなく気分が重い」という症状の場合,「なんとなく」とはどのような意味なのか,明確にすることは難しいです.このような問題に直面し,AI研究は再び冬の時代へと突入していくことになります.

第3次AIブーム

そしていよいよ,AI研究は第3次AIブームを迎えます.第3次AIブームは現在も続いており,AI研究に大きな発展をもたらしました.その発展を支えるのが,深層学習という技術になります.

第2次AIブームまでは,人間がルールを設定し,機械がそれを計算することにとって問題を解くことが想定されていました.一方で,第3次AIブームで大きく発展した深層学習では,人間がデータを集めて機械に与えることで,機械が自らルールを発見することができます.このことにより,これまでの機械が解けなかった問題を機械が解けるようになりました.


深層学習

古典的プログラムと深層学習の違い

古典的プログラムは人間がある事象を観察したりしてルールを導き出して記述し,そのルールに基づいてコンピュータが演算し結果を出力します.
それに対して,深層学習は人間が用意した素材(データセット)と構成(アーキテクチャ)を元に,コンピュータがルール自体を学び,演算の結果を出力します.
Program vs DeepLearning


わたしたち人間が普段していることに置き換えると,

  • 古典的プログラムは反射
  • 深層学習は思考

と言うことができるかもしれません.
Program vs DeepLearning in human action


深層学習の仕組み

人間の脳はニューロン上で電気信号が伝わっていくことにより処理が行なわれます.そしてそれらは,シナプス結合の強さによって軸索から次の神経細胞への信号の伝わりやすさが変化します.

brain


一方,人工知能の構造を画像分類を例に説明します.

  1. 人工的なニューロンをまず場(アーキテクチャ)として作成
  2. それを乱数でシナプス結合の強さを初期化
  3. 最終的に0-9の確率を算出
  4. 学習用のデータである正解ラベルを元に少しずつそれぞれの結合強さを調整(訓練,勾配法)
  5. 演算結果とラベルとの誤差(loss,損失関数)が少なくなると学習完了

そのモデルと結合強さ(重みW)の情報が学習済みモデルということになります.

DNN


ここの中間層(隠れ層)が複数あるもののことを深層学習と言います.

E(loss): 「目標」と「実際」の出力の誤差 が小さくなるように更新していく方針で,EのWに関する微分をとり,正負からアップデートをかけて調整していきます.
この部分の数学的な側面はあまり追わなくても良いと思います.


どのようにAIは見るか

CNN

(Convolutional Neural Network (CNN) by NVIDIA より引用)



深層学習を飛躍的に発展させた1つの要素がCNNです.
CNNは単なる深層学習モデルDNNと違い,畳み込み演算(フィルター)を適用することで、画像の時空間的な依存性(隣り合ったピクセルとの関係)をうまく捉えることができます.
畳み込み演算が行われた結果の画像は図のように変化します.

CNN

このフィルタ部分などを工夫し,層を増やしていくことで

  • 第一層: 輪郭
  • 第二層: テクスチャ(質感)
  • 第三層: パーツ(目,耳など)
    .
    .
    .

などの特徴マップを得ることができます.

CONV


以下の可視化動画の”Convolutional Neural Network”部分がわかりやすいです.

とにかく遊んでみよう

識別モデル

識別モデルとは,先程何度か出てきた画像分類タスクのように,入力が特定のクラスに属するか判定します.
画像分類以外にも,

  • オブジェクトディテクション
  • セマンティックセグメンテーション
  • 深度推定
  • 姿勢推定
  • 未来予測

など,たくさん存在します.


Semantic segmentation

Semantic segmentationはどのピクセルが何に分類されるかというタスクです.
SEMASEG

BodyPix template

PoseNet

PoseNetは画素の情報から姿勢を推定するタスクです.
Glitch.com上で実行していきましょう.

PoseNet template


PoseNet_example

文字列で関節名を指定して,特定の関節に何か描いたりすることもできます.
対応する文字列は表の通りです.

関節名 対応文字列
左耳 leftEar
右耳 rightEar
左目 leftEye
右目 rightEye
nose
左肩 leftShoulder
右肩 rightShoulder
左肘 leftElbow
右肘 rightElbow
左手首 leftWrist
右手首 rightWrist
左尻 leftHip
右尻 rightHip
左膝 leftKnee
右膝 rightKnee
左かかと leftAnkle
右かかと rightAnkle

パーツの場所の対応は画像の通りです.
CNN


生成モデル

これまで紹介してきた識別モデルとは別に,生成モデルと呼ばれるモデルがあります.

識別モデルでは,例えば画像分類のように,与えられた入力に対してその画像がどのクラスにあたるかを判別することを目的としていました.

一方で生成モデルでは,今あるデータの生成過程をモデル化することを目的としています.生成過程をモデル化することができれば,学習データと似たデータを新しく生成することができるようになります.学習データと似たデータを新しく生成できると,どのようなことができるのでしょうか?

まず一例として,画像の生成があります.以下の画像の中にAIが生成した画像が含まれているのですが,どの画像がAIが生成した画像なのか,わかりますか?


実は,これらの画像は全てAIが生成した画像です.実際に存在する人物は一人もいません.
実際に存在する人物の写真と言われても,全く違和感ないレベルの画像が生成できていると思います.

生成モデルの研究当初は,もっと解像度が低くクオリティの低い画像しか生成することができませんでしたが,現在はここまで高いクオリティの画像が生成できるようになってきました.

これらの画像は,This Person Does Not Existというサイトにアクセスすることで誰でも実際に見ることができるので,ぜひ皆さんもアクセスしてみてください.

次に,生成モデルを応用した事例について紹介します.
皆さんは絵を描くことは好きですか?もしも自分が描いたスケッチが,AIによってとてもリアルな絶景へと変換されたらどのように感じるでしょうか?

NVIDIAによって開発されたNVIDIA Canvasは,生成モデルを使い,ラフなスケッチをリアルな風景画像へと変換してくれるツールです.ユーザーはブラシを使ってラフなスケッチを描くことで,様々な風景画像を自由に生成することができます.

このNVIDIA Canvasは,GauGANという技術をベースとしています.このGauGANでも,以下のようにブラシを使ってスケッチを描くことで,それを元にリアルな風景を生成することができます.
GauGAN

以下のWebサイトで実際に遊んでみることができるので,実際にやってみましょう.

nvidia-research-mingyuliu.com

AIを用いて新しく絵画や音楽を生成することができるようになったことで,私たちは今までに見たことのない絵画や聞いたことのない音楽を作り出すことができるようになりました.これは非常に可能性に満ちており,新しい芸術の形が将来的に生まれてくるかもしれません.

実際に,AIを用いて新しく絵画を生成するという事例は多くあります.今回は,その中でも文化的な意義を持つ事例について紹介します.

2018年に,パリのアーティストグループであるObviousが,AI (GAN) を用いて制作した絵画をオークションに出品しました.そこで,7,000(約79万円)~10,000(約113万円)ドルの予想価格に対して,それを大きく上回る432,500ドル(約4894万円)の値段で落札されました.このオークションは,クリスティーズという世界で最も長い歴史を誇る美術品オークションハウスで行われたものでした.以下が,実際にオークションに出品された作品です.

Obvious

右下には,アーティストの署名として,とある数式が記載されています.この数式は,この後紹介するGANというアルゴリズムの数式を意味しています.つまりObviousは,この作品の作者がAIであると主張しているのです.

この一件は,AIとアートの関係について,大きな影響を与えることになりました.たくさんのデータを用意してAIを訓練させた後,そのAIを使って作り出した作品は,いったい誰の作品となるのでしょうか?

このように,生成モデルを用いることによって,非常にクオリティの高い画像やアート作品を作り出すことができます.

ここで紹介した事例以外にも,生成モデルを用いることで以下のようなことができます.

  • 絵画のデータを学習して,新しく絵画を生成する
  • 音楽のデータを学習して,新しい音楽を生成する
  • 文章を学習して,新しく文章を生成する
  • 俳句のデータを学習して,新しく俳句を生成する

ここまで見てきた生成モデルには様々な種類があり,現在もたくさんの研究が行われています.今回は,その中でも有名なVAEとGANについて扱います.

VAE


生成モデルの一つに,Variational Autoencoder (VAE) と呼ばれるモデルがあります.VAEは生成モデルの一種なので,訓練データを学習することで,そのデータに近いデータを新しく生成することができます.
VAEは,Autoencoderと呼ばれるモデルを発展させたモデルになります.そのため,まずはAutoencoderについて説明します.

Autoencoderとは,訓練データを表現する特徴を学習するためのネットワークです.
訓練データとは,学習したい画像を集めたデータセットになります.ここでは,例としてmnistという有名なデータセットを取り上げます.

mnistは,以下の画像のように手書きの文字を集めたデータセットになります.画像認識や画像生成など,AI研究において頻繁に用いられるデータセットなので,これからも目にする機会は多いでしょう.
mnist

Autoencoderとは,ニューラルネットワークのモデルの一つであり,入力画像に近い画像を出力することを目的とするモデルです.Autoencoderは,EncoderとDecoderという二つのネットワークで構成されます.Encoderは入力画像を潜在変数zと呼ばれる低次元の特徴へと変換します.逆に,Decoderは潜在変数zを入力として画像を出力します.これにより,Autoencoderは入力された画像を復元することができます.以下が,Autoencoderのネットワーク図になります.
AE

次に,VAEについて見ていきましょう.VAEは,Autoencoderを発展させたモデルになります.以下がVAEのネットワーク図になります.全体的な構造としては,Autoencoderと同じくEncoderとDecoderの二つのネットワークで構成されています.そしてAutoencoderと同じように,Encoderが入力画像を潜在変数zへと変換し,Decoderがこの潜在変数zを元の画像へと復元して出力します.
VAE

VAEがAutoencoderと異なるのは,潜在変数zの分布です.Autoencoderでは,潜在変数zにデータが押し込められますが,その分布については詳細はわかりません.一方で,VAEの場合には,潜在変数zに同じようにデータを押し込めますが,その分布が特定の確率分布に従うことを仮定しています.つまり,潜在変数zがどのような分布をしているのかが分かるということです.

VAEは生成モデルなので,学習を終えた後は,新しく画像を生成することができます.その際,Decoderに潜在変数zを入力して画像を生成しますが,この時に潜在変数zがどのような分布をしているのかがわかれば,生成する画像を細かくコントロールすることができます.

例えばmnistであれば,そのデータには0~9までの10種類の数字が含まれます.VAEを使ってmnistのデータを学習することで,潜在変数zのうち,ある領域には0,ある領域には1,そして別の領域には他の数字が含まれるようになります.以下の画像は,実際に潜在変数zの分布を可視化した画像です.画像右上の領域には0が,左下の領域には1が含まれていることがわかります.
VAE 潜在空間
(https://github.com/ChengBinJin/VAE-Tensorflow より引用)

そのため,もしこのVAEを使って0という数字を生成したければ,0が含まれる領域から潜在変数zを選べばいいことになります.上の画像で言えば,右上の潜在変数zを選べば良いわけです.この時,VAEであれば潜在変数zの分布がわかるので,狙った数字を生成しやすくなるのです.この点が,VAEがAutoencoderよりも優れている点になります.

GAN


GANも生成モデルの一種です.そのためVAEと同じように,訓練データを学習することで,そのデータに近いデータを新しく生成することができます.また,NVIDIA Canvasのように,ある入力を別の入力へと変換することもできます.

GANがVAEと大きく異なる点は,その学習方法にあります.GANは,日本語では敵対的生成ネットワークと訳されますが,その名の通り,GANでは「敵対的」に学習が進んでいきます.「敵対的に」学習が進む,とはいったいどういうことなのでしょうか.

GANの構造を以下の画像に示します.GANは,GeneratorとDiscriminatorという2つのネットワークで構成されます.Generatorは,データを生成するネットワークです.Discriminatorは,Generatorが生成した偽物のデータと本物の学習データに対して,どちらが本物のデータであるかを識別します.この2つのネットワークを交互に学習していくことで,Generatorはより本物に近いデータを生成できるようになり,Discriminatorは本物・偽物をより正確に判断することができるようになっていきます.この時,GeneratorとDiscriminatorがお互い競い合うように学習していくため,「敵対的」と呼ばれているのです.
GANアーキテクチャ

このGeneratorとDiscriminatorの関係は,よく紙幣の偽造に例えられます.偽札の作成者 (Generator) はなるべく本物に近い紙幣を作ろうとし,警察官 (Discriminator) はより正確に偽札を見分けようとします.そしてお互い交互に学習していくことで,最終的に偽札の作成者は本物とほぼ区別のつかない偽札を作れるようになっていきます.

この学習方法のおかげで,GANはVAEと比べてより鮮明な画像を生成することができます.一方で学習が難しいという問題もありますが,それを改善するために様々な研究が行われています.はじめに紹介した「This Person Does Not Exist」や「NVIDIA Canvas」もGANを使用したサービスです.

他にもGANを活用したサービスとして,Artbreederというサイトを紹介します.Artbreederは,AIを用いて様々な画像を生成することができるサービスです.
人物画像やアニメキャラ,風景画やクリーチャーなど,多種多様な画像を生成することができます.
また,Artbreederでは生成した画像に対して,パラメータを操作することで自由に編集を行うことができます.

例として,以下の画像を見てみましょう.
artbreeder_original

この画像は,Artbreederで実際に生成した架空の女性の顔画像です.画像の右側にたくさんのパラメータが用意されているのがわかります.このパラメータの値を調整することで,この画像を編集することができます.それでは,試しにAgeのパラメータの値を変更してみます.
artbreeder_age

いかがでしょうか?Ageのパラメータを変更することで,若い女性の顔が老人の顔に変わりました.元の女性の雰囲気を残しつつ,年齢だけうまく変更できていますね.次に,Ageの値を元に戻してGlassesの値を変更してみます.
artbreeder_glasses

今度は女性の顔に眼鏡が追加されました.それでは最後に,Genderの値を変更してみましょう.
artbreeder_gender

女性の顔が男性の顔に変わりました.それでも,元の女性の雰囲気がどことなく感じられるように思います.

このように,GANを使うことで非常に高いクオリティの画像を生成することができます.さらに,Artbreederのように,自分が望む画像を細かくコントロールして生成することもできます.

ここでは主に画像の生成について紹介してきましたが,他にもGANを使った音楽や文章の生成など,その応用例は様々です.