人工知能の基礎(全15回)

【トピックス】 人工知能でできること,人工知能の歴史,人工知能による社会の変化, 人工知能の種類,データサイエンス,機械学習, ニューラルネットワーク,探索,知識表現,プロダクションシステム,Prolog,自然言語処理

大学で使用した自作の資料等を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.

目次

  1. aa-1. データサイエンス・AIでできること、社会の変化(人工知能社会の到来、最新の技術、産業の変化、社会や生活の変化など)
  2. aa-2. データサイエンス・AIの事例、技術(散布図、データの分布や密度、AIによる分類や特徴抽出や生成など)
  3. aa-3. 実データによるデータサイエンス・AIの演習(オープンデータ、政府統計データ、クロス集計表、相関
  4. aa-4. 機械学習,ニューラルネットワーク
  5. aa-5. 深層学習(ディープラーニング)
  6. aa-6. 画像分類システム
  7. aa-7. 学習と検証,学習不足,過学習,学習曲線
  8. aa-8. 人工知能とコンピュータビジョン
  9. aa-9. 遷移関数、知的なゲーム世界の実現
  10. aa-10. 遷移関数、探索、総当たり
  11. aa-11. パス、木、発見的探索
  12. aa-12. プロダクションシステム,知識表現,推論エンジン
  13. aa-13. 述語、Prolog
  14. aa-14. 自然言語処理
  15. aa-15. 全体まとめ,発展

その他の関連資料

【サイト内の関連ページ】

資料

aa-1. データサイエンス・AIでできること、社会の変化(クリックにより中身が表示されます)

スライド資料

[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード), [動画]

概要

人工知能(AI)はコンピュータが知的能力を持つ技術で、思考、判断、学習などの機能を有する。 AIは医療、金融、製造、農業など幅広い分野で用いられ、仕事の補助や代行といった役割を果たす。 AIの種類には機械学習や知的なITシステムがあり、用途によって選択する。 AIによる合成や生成は偽情報の拡散や倫理的な問題を引き起こす可能性があるため、注意が必要である。 AIの技術は急激に進歩してる。AIが引き起こす社会への影響や倫理的な問題も注視が必要である。 AIの発達は人間がよりクリエイティブになるためのツールともなり得る。

演習について

以下の演習では,説明部分で学んだAIの概念を,オンラインデモを通じて体験する.各デモの結果を観察し,考察すること.

ブラウザの種類・バージョンによっては動作しない可能性もある。

習っていない言葉(例:隠れ層)などが出てくるが、将来の授業で説明予定なので心配しないでほしい。演習8から11は注意書きを確認の上で実行してほしい。

演習1. CNN 3D Visualization(Adam Harley)(機械学習・ニューラルネットワーク)

説明の「ニューラルネットワークの基本構造」に対応する演習である.畳み込みニューラルネットワーク(CNN)の内部構造を3Dで可視化し,各層がどのように入力を処理しているかを観察する.

URL: https://adamharley.com/nn_vis/cnn/3d.html

操作手順

  1. ページを開く(使用するWebブラウザの種類・バージョンによって動作しない場合がある)
  2. 左下の描画パッドに数字(0〜9)をマウスで描く
  3. 3D表示されたネットワークの各層のニューロンの活性化(色の変化)をリアルタイムに観察する
  4. 各ニューロンにマウスカーソルを合わせると,そのニューロンが何を検出しているか確認できる
  5. 異なる数字を描き,ネットワークの反応の違いを比較する

観察と考察

演習2. TensorFlow Playground(機械学習・ニューラルネットワーク)

説明の「ニューラルネットワークの基本構造」に対応する演習である.ニューラルネットワークの構造やパラメータを変更しながら,学習過程の変化を観察する.

URL: https://playground.tensorflow.org

操作手順

  1. ページを開く
  2. 画面左上の「DATA」セクションで,データセット(円形,XOR,渦巻き等)を選択する
  3. 必要に応じて、「FEATURES」セクションで入力特徴量(X1,X2等)を選択する
  4. 必要に応じて、「HIDDEN LAYERS」の「+」「-」ボタンで隠れ層の数を変更する.各層のニューロン数も「+」「-」で変更できる
  5. 画面上部の再生ボタン(▶)をクリックして学習を開始する
  6. 学習が進む様子と,出力領域の色分けの変化を観察する
  7. Learning rateやActivation関数を変更し,学習結果の違いを比較する

観察と考察

演習3. PathFinding.js Visual(知的なITシステム)

説明の「探索による問題解決」に対応する演習である.探索アルゴリズムが経路を見つける過程を可視化し,コンピュータによる探索の仕組みを理解する.

URL: https://qiao.github.io/PathFinding.js/visual/

操作手順

  1. ページを開く
  2. グリッド上でマウスをドラッグして壁(障害物)を配置する
  3. 緑色のノード(スタート地点)と赤色のノード(ゴール地点)はドラッグで移動できる
  4. 画面上部のドロップダウンからアルゴリズム(A*,BFS,DFS等)を選択する
  5. 「Start Search」ボタンをクリックする
  6. 探索対象のセル(水色)と最短経路(黄色)がアニメーションで表示される
  7. アルゴリズムを変更して,探索の仕方の違いを比較する

観察と考察

演習4. DeepL(AIでできること)

説明の「自動翻訳サービス」に対応する演習である.AIによる自動翻訳の精度と自然さを体験する.

URL: https://www.deepl.com/ja/translator

操作手順

  1. ページを開く
  2. 左側の入力エリアに日本語のテキスト(例:「人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である」)を入力する
  3. 右側に翻訳言語(例:英語)を選択する
  4. リアルタイムに翻訳結果が表示される
  5. 翻訳言語を変更し(フランス語,中国語等),複数言語への翻訳を試す

観察と考察

演習5. AutoDraw(Google)(AIによる合成)

説明の「人間の下書きをAIが清書する」に対応する演習である.手描きの下書きをAIが認識し,候補イラストを提示する仕組みを体験する.

URL: https://www.autodraw.com/

操作手順

  1. ページを開く
  2. li>最初、緑色の「Start Drawing」をクリック
  3. 画面左側のツールバーから「AutoDraw」ツール(魔法の杖アイコン)を選択する
  4. キャンバスに絵(例:猫,車,花等)を手描きする
  5. 画面上部にAIが推測した候補イラストが表示される
  6. 候補の中から適切なものをクリックすると,手描きが清書に置き換わる

観察と考察

演習6. Sketch RNN VAE Demo(Magenta)(AIによる合成)

説明の「AIでスケッチを増やす」に対応する演習である.VAEにより,描いたスケッチに似たスケッチを複数生成する技術を体験する.

URL: https://magenta.tensorflow.org/assets/sketch_rnn_demo/multi_vae.html

操作手順

  1. ページを開く
  2. 画面右下のドロップダウンからカテゴリ(例:bird,cat等)を選択する
  3. 左側のキャンバスにお題の絵を描く
  4. 描き終えたら「auto-encode」ボタンをクリックする
  5. 右側の小さなボックスに,元のスケッチに似た(ただし同一ではない)スケッチが複数生成される

観察と考察

演習7. GAN-play(MIT Media Lab)(AIによる合成)

説明の「手書きの線画から画像を生成する」に対応する演習である.pix2pix(GAN技術)を使用して,手書きの線画からカラー画像を生成する技術を体験する.

URL: https://mitmedialab.github.io/GAN-play/

操作手順

  1. ページを開く
  2. Step 1 のキャンバスに線画を描く(画像をアップロードすることも可能)
  3. Step 2 からモデル(Birds,Flowers,Cats,Shoes等)を選択する
  4. リアルタイムに右側にpix2pixモデルが生成したカラー画像が表示される
  5. 線画を修正すると,生成画像も即座に変化する

観察と考察

ここから先は、余裕のある人向け(自分でWebカメラや画像ファイルを準備して、自力で進める人向け)である。

演習8〜11はWebカメラや画像ファイルが必要である(どちらになるかは演習によって違う).

演習8. Teachable Machine(Google)(機械学習・ニューラルネットワーク)

説明の「訓練データと学習の仕組み」に対応する演習である.自分のデータで訓練データの作成,学習,推論の一連の流れを体験する.

URL: https://teachablemachine.withgoogle.com/

操作手順

  1. ページを開き,「使ってみる (Get Started)」をクリックする
  2. 「画像プロジェクト(Image Project)」を選択し,「標準の画像モデル (Standard image model)」をクリックする
  3. Web カメラを使う場合には、「Class 1」の「ウエブカメラ (Webcam)」ボタンを押し,カメラで対象物(例:ペン)を映しながら「長押しして録画 (Hold to Record)」で画像を撮影する(20枚程度)
  4. 「Class 2」でも同様に別の対象物(例:消しゴム)の画像を撮影する
  5. 「モデルをトレーニング (Train Model)」ボタンをクリックし,学習が完了するまで待つ
  6. 「プレビュー (Preview)」パネルでカメラに対象物を映し,分類結果がリアルタイムに表示されることを確認する

観察と考察

演習9. Google Cloud Vision API Demo(AIでできること)

説明の「画像分類」に対応する演習である.画像をアップロードし,AIによるラベル付けや物体検出を体験する.

URL: https://cloud.google.com/vision/docs/drag-and-drop

操作手順

  1. ページを開く
  2. デモエリアに画像ファイルをドラッグ&ドロップする
  3. 「Labels」タブで,AIが画像に付けたラベル(例:Glasses 98%,Smile 95%等)を確認する
  4. 「Objects」タブで,画像内の物体検出結果を確認する
  5. 「Properties」タブで,支配的な色を確認する
  6. 「Safe Search」タブで,画像の安全性判定結果を確認する
  7. 「Faces」ボタンで表情推定結果を確認する

観察と考察

演習10. Modern Face API Demo(AIでできること)

説明の「顔検知」「顔のキーポイント検出」「表情の自動判定」に対応する演習である.1つのデモで顔に関する複数のAI技術を体験する.

URL: https://modern-face-api.vercel.app/

操作手順

  1. ページを開き,右側で「Face Detection」を選ぶ
  2. 「Choose Image】をクリック。自分の顔画像をアップロードする,
  3. 検出された顔にバウンディングボックスが表示される
  4. 右側で「Landmarks」をクリック。同じように顔画像をアップロード。目・鼻・口等のキーポイントが点で表示されることを確認する
  5. 「Expressions」タブに切り替え,表情の分析結果(各感情の確率)を確認する
  6. 「Age & Gender」についても試し,推定年齢と性別を確認する

観察と考察

演習11. MediaPipe Pose Estimation(Hugging Face)(AIでできること)

説明の「人体の姿勢の読み取り」に対応する演習である.人体の関節位置を検出し,骨格を可視化する技術を体験する.

URL: https://huggingface.co/spaces/hysts/mediapipe-pose-estimation

操作手順

  1. ページを開く
  2. 人物が写った画像をアップロードする。
  3. 検出された関節(キーポイント)が点で,関節を結んだ骨格が線で表示される
  4. 設定パネルでModel Complexity(モデルの複雑さ)を変更し,検出精度の違いを観察する

観察と考察

aa-2. データサイエンス・AIの事例、技術(散布図、データの分布や密度、AIによる分類や特徴抽出や生成など)

資料: [PDF], [パワーポイント]

【トピックス】

人工知能, データサイエンス, 表計算ソフトウエア Excel, 散布図(Excel を使用), 合計, 平均(Excel を使用), 分布, 密度(Excel を使用), 人工知能と機械学習

概要

データサイエンスとAIは、データ活用に欠かせない分野である。 データサイエンスはデータから有益な情報を導き出す学問で、機械学習は大量のデータからパターンを学び、未知のデータに対する予測能力を持つ。 Excelを用いてデータを視覚的に表現し分析するという実践的なスキルを身につけることも重要。 これらを理解し、実践的経験を積むことが将来の活躍につながる。

【関連するページ等】

【関連する外部ページ】

  • Office 365 オンライン版 https://portal.office.com

    Excel ファイル(各自の演習に活用)

    aa-3. 実データによるデータサイエンス・AIの演習(オープンデータ、政府統計データ、クロス集計表、相関

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, オープンデータ, 政府統計データ, クロス集計表(Excel を使用), 相関(Excel を使用)

    概要

    データサイエンスとAI、特にオープンデータとその利用について説明する。 オープンデータは公開されたデータで、一定の条件下で自由に利用できる。 これらは新しいビジネスやサービスの創造、コスト節約、透明性の向上に寄与する。 しかし、データの信頼性やプライバシーを確認し、著作権を尊重する必要がある。 また、オープンデータはAI、特に機械学習の重要なデータソースであり、AI研究者向けに公開されたサイトもあります。 政府統計データがどのように取得し利用されるかを示す。 そして、クロス集計表と相関の概念を紹介し、それらを使用した分析の例を見ていく。

    【関連するページ等】

    【関連する外部ページ】

    Excel ファイル(各自の演習に活用)

    aa-4. 機械学習,ニューラルネットワーク

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, ニューラルネットワーク, ニューラルネットワークの種類, 線形近似, 最適化

    概要

    機械学習は、コンピュータがデータを使用して学習し、知的能力を向上させる技術である。 そのメリットとして、パターンや関連性を抽出し、複雑なプログラミングを省略でき、問題解決への他の手法の限界を超える可能性がある。 ニューラルネットワークは、生物の脳を模倣し、多くのユニットとその間の結合からなるネットワークであり、機械学習に広く活用されている。 自己符号化や分類、予測などの技術を利用して、データの特徴を抽出や予測結果を導くことが可能である。 また、線形近似は、データの特徴を把握する手法の一つであり、最適化は、目的関数を最小化または最大化するための調整を行う重要なプロセスである。

    【関連するページ等】

    【関連する外部ページ】

    Excel ファイル(各自の演習に活用)

    Python プログラム

    最適化の用途

    謝辞:https://docs.scipy.org/doc/scipy/tutorial/optimize.html のプログラムをそのまま使用しています.

    
    import numpy as np
    from scipy.optimize import minimize
    def rosen(x):
        """The Rosenbrock function"""
        return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)
    
    x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
    res = minimize(rosen, x0, method='nelder-mead',
        options={'xtol': 1e-8, 'disp': True})
    print(res.x)
    

    aa-5. 深層学習(ディープラーニング)

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, ニューラルネットワーク, ディープラーニング, ユニット, 活性化, 結合の重み, 活性化関数, 伝搬, ニューラルネットワークを用いた分類, ニューラルネットワークを用いた学習

    概要

    ニューラルネットワークは、複数のユニットが結合し、各ユニットは入力の重み付けや活性化関数の適用を行う。 構造は、層構造で全結合のものが最もシンプルで、データは入力から出力への一方向に流れ、各層のユニットは全結合される。 結合の重みやバイアスの調整により望みの出力を得る。 ディープニューラルネットワークは層が多いニューラルネットワークで、多層でも学習が成功するためのさまざまな工夫が必要とされる。

    【関連するページ等】

    【関連する外部ページ】

    Excel ファイル(各自の演習に活用)

    aa-6. 画像分類システム

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, 画像と画素, 濃淡画像のデータ, ニューラルネットワークを用いた分類, 画像分類システム, ニューラルネットワークの作成, 学習, 画像分類

    概要

    画像分類システムは、画像を特定のカテゴリに分類するもので、 手書き文字認識やパターン認識等に応用される。 画像分類は、ニューラルネットワークを使用して可能である。 ニューラルネットワークは機械学習の一種で、パターンや関連性を学習する。 画像分類システムでは、ニューラルネットワークの最終層のユニットで最も活性度の高いものを選択するという仕組みで分類が行われる。 画像分類システムは広範に活用されており、具体的な学習はTensorFlowの公式チュートリアル等を通じて可能である。

    【関連するページ等】

    【関連する外部ページ】

    aa-7. 学習と検証,学習不足,過学習,学習曲線

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, 機械学習, 汎化, 汎化の失敗, 学習の繰り返し, 学習曲線

    概要

    機械学習は訓練データから学習し、未知のデータに対しても適切に処理できる「汎化」能力を持つ。 学習の過程は、訓練データでの誤差を減らすよう重み調整し繰り返すものだが、過学習となり未知データでの誤答が増える場合がある。 そのため、検証データを用いて過学習の確認が必要で、学習曲線はその一助となる。 最近の技術進展により過学習防止の技術が進展している。過学習の防止には大量データによる学習も大切である、コンピュータの高速化も一定の助けとなっている。

    【関連するページ等】

    【関連する外部ページ】

    aa-8. 人工知能とコンピュータビジョン

    資料: [PDF], [パワーポイント]

    【トピックス】

    人工知能, コンピュータビジョン, 畳み込み, プーリング, 畳み込みニューラルネットワーク, 物体検出, セグメンテーション, 顔情報処理, 姿勢推定

    概要

    コンピュータビジョンはコンピュータが実世界を理解・活用する技術で、 画像理解、物体検出、セグメンテーションなどが重要な要素である。 ディープニューラルネットワークや畳み込みにより、これらの精度向上が進んでいる。 畳み込みはデータとカーネルを重ね合わせて一つの値にまとめる手法である。 コンピュータビジョンは他にもある。 顔情報処理は顔検出、顔ランドマーク、顔のコード化、顔識別などがあり、 本人確認や表情推定、年齢判定など多岐にわたり利用される。 姿勢推定は人体の姿勢をAIで把握する技術で、 状況把握、行動予測、行動検知、危険察知などに応用される。

    【関連するページ等】

    【関連する外部ページ】

    aa-9. 遷移関数、知的なゲーム世界の実現

    【トピックス】

    人工知能の種類、知的なゲームのルール、状態空間表現

    資料: [PDF], [パワーポイント]

    YouTube 動画: https://www.youtube.com/watch?v=ftSktLFJ3y4

    この回で学ぶこと.
    • 知的なゲームのルール,コンピュータプレイヤーがゲームに参加,状態空間表現
    • 知的なゲーム(ゲームのルールと勝利条件が定まっているもの)で, コンピュータが,ゲームのプレイヤーになる.
    • そのための基礎として「状態空間表現」という方法を使い,コンピュータでもゲームのルールを扱えるようにすることを学ぶ.

    aa-10. 遷移関数、探索、総当たり

    【トピックス】

    総当たり、総当たりのパス、状態空間表現での総当たり、パスと木、Python による総当たり

    資料: [PDF], [パワーポイント]

    YouTube 動画: https://www.youtube.com/watch?v=o_Ms27QaSsg

    この回で学ぶこと.
    • 総当たりにより,正解を探索する.
    • 総当たりは「正解を確実に探索できる方法」とも考えることができる.
    • 状態空間表現(世界の状態が変数で表されている)でのルールをもとに 変数値を変化させてゴール(目的とする変数の値)に至ることを探索.

    aa-11. パス、木、発見的探索

    資料: [PDF], [パワーポイント]

    YouTube 動画: https://www.youtube.com/watch?v=72AKU8Nh8tY

    この回で学ぶこと
    • パス,木,グラフは,情報を見通し良く扱えるための考え方
    • 総当たりはすべての経路(パス)を試すもの.経路 (パス)の情報を見通し良く扱うには,木が有効.
    • 探索は,木の中のスタートの場所と,ゴールの状態 を指定して経路(パス)を探す.
    • 探索は,正解に至る経路(パス)があるのであれば,必ず経路(パス)を見つけることができる.
    • 探索には,種々の方法があるが,正解に至る経路(パス)があるのであれば,必ず経路(パス)を見つけることができることに変わりはない.
    外部ページへのリンク(作者に感謝します).

    aa-12. プロダクションシステム,知識表現,推論エンジン

    資料: [PDF], [パワーポイント]

    YouTube 動画: https://www.youtube.com/watch?v=72AKU8Nh8tY

    この回で学ぶこと.

    プロダクションシステム

    • 作業領域

      作業領域には「知識」のデータを置く。知識は、変化するものである。 知識は、次のような形で書くことができる。

      ['体毛', 'ある']

      ['肉食', 'する']

    • 推論エンジン

      ルールを用いて作業領域を変化させるという推論を行う

    • ルール

      ルールは既存の知識から新しい知識を生み出したり、知識を変化させるためのルールである。 次のように書くことができる。

      '体毛' = 'ある'→ ['種類', '哺乳類']

      '種類' = '哺乳類' and '肉食' = 'する' → ['種類', '肉食動物']

    GDB online: https://www.onlinegdb.com/

    右上の「language」で「Python 3」を選ぶこと.

    プログラムの実行開始は「Run」,実行停止は「Stop」

    aa-13. 述語、Prolog

    資料: [PDF], [パワーポイント]

    今回の授業で学ぶこと.
    • 事実を述語の形で書くことができる.述語は,1項,あるいは,複数項の関係のこと
      • john は男である

        male(john). 1項

      • mike は john の親である

        parent(mike, john). 2項

      複数項のときは,カンマで区切る

    • 述語でのルールの例

      X が Y の parent (親) ならば, Y は X の child (子供) である

      child(Y, X) :- parent(X, Y).

      X,Y は変数

    • Prolog

      Prolog では,問い合わせに対し事実との照合や推論を行う. 問い合わせでは, 値 false, trueを回答したり, 変数値 X = hanako, X = taro を回答する能力を持つ

    aa-14. 自然言語処理

    資料: [PDF], [パワーポイント]

    この回で学ぶこと
    • 自然言語処理

      人間の言葉を、コンピュータが処理すること

    • 自然言語処理の種類
      • 単語の切り出し
      • 品詞の判定
      • 構文解析(係り受けなどの関係の分析)
      • 意味解析

    aa-15. 全体まとめ,発展

    資料: [PDF], [パワーポイント]

    Python プログラムのソースコードなど


    人工知能デモサイトの紹介