「人工知能」サポートページ

授業担当教員:金子邦彦(情報工学科), サポートページ:https://www.kkaneko.jp/mi/index.html, 場所:4号館3階PC1室(04201室), 福山大学キャンパスマップ:https://www.fukuyama-u.ac.jp/about/access/, 時間:水曜日2時限

お知らせ

「人工知能」説明動画を再生 人工知能 [動画] (クリックすると再生開始), [パワーポイント] (Gemini, Vrew を用いて作成)


今年度(2026年度)の資料について

第1回. データサイエンス・AIでできること,社会の変化

人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である. データから自ら学習する機械学習と,人間が書いたルールや知識を用いる知的なITシステムに大別される. 応用分野は,画像分類・顔検知・セグメンテーション,対話型AI,自動翻訳,データ分析と予測,GANによる画像合成など多岐にわたる. 学習データに偏りがあると結果にも偏りが出るため利用には注意が必要である.

スライド資料

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

動画

[動画], [YouTube動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習について

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

演習1から7まで挑戦する.ブラウザの種類・バージョンによっては動作しない場合があり,その場合は当該の演習を飛ばして次に進む.

説明していない用語(例:隠れ層)が出てくる場合があるが,今回は体験を目的としており,用語は今後の授業で説明する.演習8から11は,Webカメラや画像ファイルを準備できる場合に取り組む.

演習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. 最初,緑色の「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. 線画を修正すると,生成画像も即座に変化する

観察と考察

演習8〜11はWebカメラまたは画像ファイルが必要である(演習ごとに異なる).教室PCにはウェブカメラが搭載されていないため,個人PCでウェブカメラを搭載している場合に試すことができる.画像ファイルを使用する場合は,あらかじめ画像を準備しておく.

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

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

Webカメラあるいは画像ファイルの準備が必要である.個人PCでウェブカメラを搭載している場合に試すことができる.教室PCにはウェブカメラがない

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/

(画像アップロード.個人PCでウェブカメラ搭載の場合のみ試すことができる.教室PCにはウェブカメラがない)

操作手順

  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(モデルの複雑さ)を変更し,検出精度の違いを観察する

観察と考察

第2回. データサイエンス・AI の事例,技術

スライド資料

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

データサイエンスは,データから有益な情報を導き出すための学問である.散布図やヒストグラムなどでデータを可視化する. 機械学習は,コンピュータがデータを使用して学習し知的能力を向上させる技術で,パターンや関係性を自動で発見する. 機械学習には,正解の組を用いる教師あり学習のほか教師なし学習強化学習があり,代表的手法にディープラーニングがある. いずれもデータに基づく技術である.結果に100%の正確性は保証されず,データの選択・前処理に注意が必要である.

動画

[動画], [YouTube動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習について

以下の演習では,説明部分で学んだデータサイエンス,機械学習の概念をについて理解を深める.


演習1. 平均(Excel)

ペンギン3種類のデータを使い,Excelの関数で合計と平均を求める演習である.種類ごとの平均を比較することで,種類による体の特徴の違いを数値で把握する.

使用データ:penguins.xls

操作手順

  1. 配布されたpenguins.xlsをダウンロードし,Excelで開く(ファイルをダブルクリック,またはExcelの「ファイル」「開く」から選択する).このとき「編集を有効にする」をクリック
  2. データが正しく表示されていることを確認する(A列:種類,B列:くちばしの長さ(mm),C列:くちばしの深さ(mm),D列:フリッパーの長さ(mm),E列:体重(g).データは1行目がヘッダ,2行目から343行目までの333行である)
  3. データの構成を確認する(Adelie:2行目〜147行目の146行,Gentoo:148行目〜275行目の119行,Chinstrap:276行目〜343行目の68行)
  4. 空いているセル(例:G2)に「Adelie」と入力
  5. G3に「Gentoo」,G4に「Chinstrap」と入力する
  6. H2をクリックし,「=AVERAGE(B2:B152)」と入力してEnterキーを押す(Adelieのくちばしの長さの平均が表示される)
  7. 同様に,I2に「=AVERAGE(C2:C152)」,J2に「=AVERAGE(D2:D152)」,K2に「=AVERAGE(E2:E152)」と入力する
  8. H2に「くちばしの長さ(mm)」,I2に「くちばしの深さ(mm)」,J2に「フリッパーの長さ(mm)」,K2に「体重(g)」の平均が求まっていることを確認する.

  9. Gentooの平均を求める.H3に「=AVERAGE(B153:B275)」と入力する.

    I3,J3,K3も同様に行う.I3に「=AVERAGE(C153:C275)」,J3に「=AVERAGE(D153:D275)」,K3に「=AVERAGE(D153:D275)」と入力する

  10. Chinstrapの平均を求める.H4に「=AVERAGE(B276:B343)」と入力する.

    I4,J4,K4も同様に行う. I4に「=AVERAGE(C276:C343)」,J4に「=AVERAGE(D276:D343)」,K4に「=AVERAGE(E276:E343)」と入力する

  11. 3種類×4項目の平均値が集計表に表示されていることを確認する

左から順に,「くちばしの長さ(mm)」,「くちばしの深さ(mm)」,「フリッパーの長さ(mm)」,「体重(g)」の平均

観察と考察


演習2. 散布図(Excel)

ペンギン3種類のデータを使い,Excelで散布図を作成する演習である.2つの特徴量を横軸と縦軸にとり,種類ごとのデータの分布やかたまりを視覚的に確認する.

使用データ:penguins.xls(演習1と同じファイルをそのまま使用する)

操作手順

  1. 演習1で開いたpenguins.xlsのExcel画面を使用する(閉じてしまった場合は再度開く)
  2. まずAdelieの散布図を作成する.B1からC152までを範囲選択する(B1をクリックし,Shiftキーを押しながらC152をクリックする.B1のヘッダ行を含めて選択する)
  3. 同様に,Gentooの散布図を作成する.B153からC275までを範囲選択し,同じ手順で散布図を挿入する.
  4. 同様に,Chinstrapの散布図を作成する.B276からC343までを範囲選択し,同じ手順で散布図を挿入する.
  5. 3つの散布図をドラッグで移動し,横に並べて配置する

結果

参考(色分けして1枚にしたもの)

観察と考察


演習3. ヒストグラム(Excel)

ペンギン3種類の体重データを使い,Excelでヒストグラムを作成する演習である.データの散らばり方(分布)を可視化し,平均だけでは分からない特徴を読み取る.

使用データ:penguins.xls(演習1,2と同じファイルをそのまま使用する)

操作手順

  1. 演習1,2で開いたpenguins.xlsのExcel画面を使用する
  2. まず全体のヒストグラムを作成する.E1からE343までを範囲選択する(E1をクリックし,Shiftキーを押しながらE343をクリックする.E1のヘッダ行を含めて選択する)
  3. リボンの「挿入」タブをクリックする
  4. 「ヒストグラム」のアイコンをクリックし,ヒストグラムを選択する(「統計グラフの挿入」の中にある場合もある)
  5. 体重のヒストグラムが表示される.横軸が体重の区間,縦軸がその区間に含まれるデータの個数(度数)を表す
  6. 次に,種類ごとのヒストグラムを作成する.Adelieの体重のヒストグラムを作成するには,E1からE152までを範囲選択し,同様の手順でヒストグラムを作成する
  7. 同様に,Gentoo(E153:E275),Chinstrap(E276:E343)のヒストグラムもそれぞれ作成する
  8. 全体のヒストグラムと,種類ごとの3つのヒストグラムを見比べる

観察と考察


演習4. 機械学習によるペンギンの種類の自動分類(Google Colab)

演習1〜3と同じペンギンのデータを使い,機械学習(教師あり学習)でペンギンの種類を自動分類する様子を観察する演習である.演習2の散布図で人間が目で確認した「種類ごとのかたまり」を,コンピュータが自動で分類する仕組みを体験する.

使用データ:penguins.xls(演習1〜3と同じファイル)

実行の流れ

  1. 教員がGoogle Colabのノートブックを開く(URLはhttps://colab.research.google.com/drive/1GBgTuBxBqenffJ6In7MyFEDMvHvL8aiF?usp=sharing
  2. ノートブックには,パーマーペンギンデータを読み込み,機械学習で種類を自動分類するプログラムが記述されている
  3. 次の結果の確認
    • データの読み込み結果(件数と内容の確認)
    • 散布図の確認(演習2と同様の散布図をプログラムで作成)
    • 訓練データとテストデータへの分割(データの一部を学習に使い,残りを評価に使う)
    • 機械学習における学習の実行(コンピュータが訓練データからパターンを学ぶ)
    • テストデータに対する予測結果(学習に使わなかったデータで正しく分類できるか)
    • 散布図上での分類結果の可視化
    • 左が実データ.右が機械学習による予測(3種を予測)

観察と考察

[演習で用いたパーマーペンギンデータの準備手順]

演習のパーマーペンギンデータの準備手順を説明しているものであり,各自の演習として取り組む必要はない

  1. パーマーペンギンデータURL

    https://raw.githubusercontent.com/allisonhorst/palmerpenguins/master/inst/extdata/penguins.csv

  2. 前処理:NA(欠損値)を含む行を削除,不要な列(island, sex, year)を削除,ヘッダ行を日本語に変更

第3回. 実データによるデータサイエンス・AIの演習

オープンデータには,政府統計e-Stat,気象データ,GTFS形式の公共交通データ,AED設置場所,感染症動向データなどがある. 利用時は,データの品質や信頼性の確認,著作権の尊重,出典の明示,公開者が定める利用条件の遵守が必要である. クロス集計表は2つの変数の組み合わせごとに人数等を集計した表である.相関係数は2つの変数の関係の強さを表す数値である. 分析の前に散布図でデータの分布を確認し,サンプル数やデータの偏りの確認も必要である.

スライド資料

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

[演習の詳細を表示するには,この行をクリックしてください]

演習について

以下の演習では,説明部分で学んだデータサイエンス・AIの概念を,オンラインデモを通じて体験,さらに,各自データをダウンロードしてExcelを用いて分析する. 演習1と演習2は,「自分が知らなかった事実」を1つでも見つけることが目的である. 演習3と演習4と演習5は,「自分でデータを取得し,自分で分析し,自分で考える」ことを行う. いずれも,データ分析者としてスキルを磨くことになる.

翻訳サイト

質問は英語で与える必要がある. 翻訳サイトDeepL: https://www.deepl.com/ja/translatorを必要に応じて活用してほしい

Chromeブラウザの翻訳機能の使い方

画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる.

手順A:ページ上の文字のない場所(余白)を右クリックする.

手順B:表示されたメニューから「日本語に翻訳」を選ぶ.

手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ.

注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい.

演習1. 質問を理解するAI 「Data Commons」

概要

Google Data Commonsは,世界各国の公的機関(日本の国勢調査,米国国勢調査局,世界銀行,WHO,CDC等)が公開する統計データを1か所に集めたオープンデータプラットフォームである.検索欄に英語で質問を入力すると,大規模言語モデル(LLM:Large Language Models,大量のテキストで学習した言語処理AI)が質問を解釈し,統計を地図やグラフで自動的に可視化(データをグラフや地図で見える形にすること)する.

操作手順

手順1:ブラウザで https://datacommons.org/ にアクセスする.

手順2:画面の上部中央の検索欄をクリックする.

手順3:以下のいずれかの質問例をコピーして検索欄に貼り付け,Enterキーを押す.

How has the population of Japan changed over time?
Life expectancy in Japan compared to other G7 countries
Unemployment rate in Tokyo

それぞれの意味は,1つ目が「日本の人口推移」,2つ目が「日本とG7各国の平均寿命比較」,3つ目が「東京の失業率」である.トップページに表示される質問例(Sample questions)をクリックして試してもよい.

手順4:画面に折れ線グラフ・地図・ランキング表などが,データに応じて自動生成されることを確認する.

手順5:グラフ付近にある「About this data」をクリックすると,どの公的機関のオープンデータが使われているかを確認できる.

手順6:画面左上の「DC」のロゴをクリックしてトップページに戻り,別の質問で手順3から繰り返す.最低3つの質問を試す.

体験のポイント

「質問文」の意味をAIが理解し,適切なデータが選択されている.「Unemployment rate in Tokyo (東京の失業率)」のような質問では,このサイトがデータを取得できず結果が得られない.その場合は「Unemployment rate in Japan (日本の失業率)」のように変えて試す.

演習2. データの隙間を埋めるAI 「Gapminder」

概要

Gapminder Toolsは,スウェーデンのGapminder Foundation(非営利団体)が運営する世界統計の可視化ツールである.世界銀行,WHO,国連等が公開するオープンデータを用いて,各国の所得・平均寿命・人口等を動くバブルチャートで表示する.時間軸スライダーを動かすと,1800年から現在までの各国の変化をアニメーションで見ることができる.データが存在しない年の値は,前後の年から推定するアルゴリズム(欠損値補完)で埋められている.

操作手順

手順1:ブラウザで https://www.gapminder.org/tools/ にアクセスする.

手順2:初期画面でバブルチャートが表示されることを確認する.画面上部のタブが「Bubbles」になっていることを確認する.

手順3:画面右側の国名リストで「Japan」を探してクリックする,または検索欄に「Japan」と入力する.日本のバブルがハイライト表示される.

手順4:画面下部の再生ボタン(▶)をクリックし,1800年から現在までのアニメーションを見る.日本のバブルがどのように動くかに注目する.

手順5:アニメーション終了後,時間軸スライダーを左右に動かし,日本の軌跡を確認する.

手順6:横軸または縦軸のラベルはメニュー(「Income」「Life expectancy」等)になっている.別の指標に変える.例として「Children per woman」(女性1人あたりの子どもの数)や「CO2 emissions」(CO2排出量)を選ぶ.

手順7:画面下部のボタンで「Bubbles」から「Maps」(地図),「Ranks」(順位)などに切り替え,同じデータを別の形式で見る.

手順8:横軸や縦軸のラベルを変更する.気になる指標について,日本と他国(例:韓国,米国,ブラジル)を比較する.

体験のポイント

「所得が上がると平均寿命も延びる」等の相関関係(2つの指標が連動して変化する関係)を,200年分のデータで自分の目で確かめる.

Excelで相関係数を求める手順

どのサイトの演習でも,相関係数の計算は以下の手順で行う.

手順E1:2列のデータをExcelに用意する(例:A列に指標1,B列に指標2).1行目は見出しとし,2行目以降にデータを置く.

手順E2:空きセルを選び,=CORREL(A2:A48, B2:B48) のように入力する.範囲は自分のデータ件数に合わせて変える.

手順E3:Enterキーを押すと,−1から1までの値が表示される.1に近ければ正の相関,−1に近ければ負の相関,0に近ければ相関がほぼないとみなす.

手順E4:2列のデータを選び,「挿入」→「散布図」で散布図を描き,点の並びを目で確かめる.

演習3. 過去の気象データ・ダウンロードと相関の分析

概要

気象庁が運営する,全国の観測地点の気温・降水量・日照時間等をCSVでダウンロードできるサイトである.観測地点・観測項目・期間を画面上で選ぶだけでデータを取り出せる.登録不要である.

操作手順

手順1:ブラウザで https://www.data.jma.go.jp/risk/obsdl/ にアクセスする.

手順2:画面上部の「地点を選ぶ」をクリックする.都道府県の地図から「東京都」を選び,表示された地点の中から「東京」にチェックを入れる.

「他の都道府県を選ぶ」をクリック.続けて「大阪府」を選び,「大阪」にチェックを入れる.画面右上の「選択済みのデータ量」のバーが上限(100%)を超えないことを確認する.

手順3:「項目を選ぶ」をクリックする.「データの種類」「月別値」を選び,項目一覧から「月平均気温」にチェックを入れる.

手順4:「期間を選ぶ」をクリックし,「連続した期間で表示する」を選び,年と月を指定する(例:2025年1月から,2025年12月まで).

手順5:画面右上の「CSVファイルをダウンロード」ボタンをクリックする.ダウンロードしたCSVをExcelで開く.

手順6:東京の月平均気温と大阪の月平均気温が12か月分並んでいることを確認する.冒頭にヘッダー行が複数行入っている.データ行の先頭を確認する.共通手順E1〜E4に従って平均気温の相関係数を計算.

そして,散布図を描く.散布図では,最初に東京の気温12ヶ月分を範囲選択.その次にCTRLキー(コントロールキー)を押しながら,大阪の気温12ヶ月分を範囲選択.これで縦軸と横軸のデータが選択できたので,「挿入」「散布図」を選ぶ

手順7:相関係数の値から判断(正の相関・負の相関・相関がほぼない)を行う.

手順8:気温以外の他のデータ,東京や大阪以外の地点でも同様に試す.

体験のポイント

日本国内の2地点の月平均気温は,季節変動が共通するため正の強い相関(1に近い値)を示すことが多い.余裕があれば,項目を「月降水量」に変えて同じ手順を繰り返し,気温ほど強い相関は出ないことを確かめる.この違いから「何が連動し,何が連動しないか」を自分の目で確かめる.

演習4. 総務省統計局「統計でみる都道府県のすがた」から相関の分析

概要

総務省統計局が毎年刊行している,47都道府県別の統計データ集である.人口,産業,教育,医療,住宅など多数の指標がまとめられ,e-Stat上でExcelファイルとして公開されている.ダウンロードしたExcelには47都道府県×多数の指標が表として並んでおり,相関係数の計算にそのまま使える.登録不要である.

操作手順

手順1:ブラウザで https://www.stat.go.jp/data/k-sugata/index.html にアクセスする.

手順2:右側のメニューで「本書の内容」をクリック.そして,「I 社会生活統計指標」のリンクをクリックする.e-Statの統計表一覧ページに移る.

手順3:一覧の中から関心のある分野のExcelファイル(例:「A 人口・世帯」「E 健康・医療」等)を選び(クリック),次のページで「表示・ダウンロード」の下のボタンをクリックする.Excel ファイルなどがダウンロードされる.初めて扱う場合は「A 人口・世帯」を選ぶとよい.

手順4:ダウンロードしたファイルを開く.「A 人口・世帯」の場合は,シートには47都道府県が行に,指標が列に並んだ表が現れる.冒頭の数行は見出しや説明である.データ行の先頭を確認する.

手順5:興味のある2つの指標を選ぶ.初めて扱う場合は「A 人口・世帯」の「総人口」と「総面積1km2あたり人口密度」がわかりやすい.

手順6:共通手順E1〜E4に従って相関係数を計算.「A 人口・世帯」の「総人口」と「総面積1km2あたり人口密度」の場合は,式は,次のようになる.

=CORREL(L14:L60, V14:V60)

そして,前の演習3と同じ手順で,散布図を作成.

手順8:相関係数の値から判断を行う.

体験のポイント

各人の興味に応じて,複数の種類のデータをダウンロード(例:都道府県別の人口,都道府県別の医師数)し,コピー&ペーストにより,1つのExcel のシートの中に2つの異なるデータを並べ,相関係数を計算したり,散布図を作成.

量的に比例する指標は,強い正の相関(1に近い値)を示すことが多い.「比率どうし」(例:高齢化率と持ち家比率)を選ぶと,より興味深い発見が得られる.相関があるからといって因果関係があるとは限らない点に注意する.

演習5. e-Stat「統計ダッシュボード」から相関の分析

概要

政府統計の総合窓口(e-Stat)と連動した,指標ごとのグラフ・ランキングに特化したサイトである.分野別の指標を選び,47都道府県の値をグラフや表で確認できる.登録不要である.

操作手順

手順1:ブラウザで https://dashboard.e-stat.go.jp/ にアクセスする.

手順2:画面上部のメニュー「グラフで見る」にカーソルを合わせ,サブメニューから分野(例:「人口・世帯」)を選ぶ.または同じサブメニューにある「都道府県へ」をクリックして都道府県別の指標一覧を直接開いてもよい.

手順3:分野内の指標一覧から,都道府県別に比較できる指標(例:「総人口」)を選ぶ.

手順4:グラフが表示されたら, 今度は, 画面の左側にあるメニューでデータ周期として「年」を選び,下の地域別で「都道府県別」などを選ぶ.

手順5:グラフが表示されるので確認する.上のタブで「数値」を選ぶ.表示された表を選択してコピーし,Excelに貼り付ける.画面にダウンロードボタン(CSVなど)がある場合はそれを使ってもよい.

手順6:同じ要領で,別の指標(例:「(季節調整値)完全失業率」)を取得し,同じExcelシートに貼り付ける.都道府県名の並びを必ず揃える.

手順7:共通手順E1〜E4に従って相関係数を計算.そして,散布図を作成.

手順8:相関係数の値から判断を行う.

体験のポイント

演習4で扱った指標とは別の組合せ(例:人口×失業率,人口×新設住宅着工戸数)を試すと,意外な結果が得られることがある.相関係数が0.3程度の場合,「相関があるとは言い切れない」と判断する慎重さが必要である.

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

機械学習は,コンピュータがデータを使用して学習し知的能力を向上させる技術で,データからパターンや関係性を自動で発見する. 入力と正解の組(例:手書き数字画像と数字ラベル)を訓練データとして用いる方式を教師あり学習と呼び,他に教師なし学習や強化学習がある. ニューラルネットワークは脳のニューロンを模した構造で,入力の重みづけ,合計とバイアス,活性化関数の適用を経て順伝播する. その学習は予測と正解の誤差を小さくする最適化であり,バックプロパゲーションにより各層の重みとバイアスを更新する.

スライド資料

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

[演習の詳細を表示するには,この行をクリックしてください]

Chromeブラウザの翻訳機能の使い方

画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる.

手順A:ページ上の文字のない場所(余白)を右クリックする.

手順B:表示されたメニューから「日本語に翻訳」を選ぶ.

手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ.

注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい.

演習1. Quick, Draw! の体験

Quick, Draw! は,Googleが公開する機械学習の体験サイトであり,登録不要で利用可能である.ユーザが描いた絵を,ニューラルネットワークがリアルタイムで分類する.本演習では,機械学習が持つ知的能力(分類,認識)を体験することを目的とする.

Quick, Draw! のサイト:https://quickdraw.withgoogle.com/

操作手順

  1. アクセスする.タイトル画面が表示される.
  2. Quick, Draw! のサイト:https://quickdraw.withgoogle.com/

  3. 「描いてみよう (Let's Draw!)」のボタンをクリックする.
  4. 画面にお題(例:カヌー)が表示される.「OK」をクリックして開始する.
  5. 20秒以内に,お題の対象をマウスまたはタッチ操作で描く.描いている途中で,画面下にニューラルネットワークによる分類結果の候補がリアルタイムで表示される.正解に到達すると次のお題に進む.20秒経過した場合も次のお題に進む.
  6. 全6問のお題が終了すると,結果画面が表示される.
  7. 結果画面で,描いた絵のいずれかをクリックする.そのお題について,ニューラルネットワークが提示した分類結果の候補が表示される.世界中の他のユーザが描いた同じお題の絵の例もあわせて表示される.
  8. 余裕があれば,意図的に分かりにくい絵を描いて,ニューラルネットワークの分類の限界を確かめる.

ヒント

考察ポイント

演習2. Neural Network Playground の体験

Neural Network Playground は,カリフォルニア大学サンディエゴ校(UCSD)のCCoMが公開するWebサイトであり,登録不要で利用可能である.ニューラルネットワークの最小構成を体験できる.ニューロンの数を1個から変化させながら,分類の境目の形状がどのように変化するかを観察できる.本演習では,「ニューラルネットワークは,ニューロンがネットワークを形成する」という仕組みを,最小構成で確認することを目的とする.

Neural Network Playground:https://www.ccom.ucsd.edu/~cdeotte/programs/neuralnetwork.html

注意:本サイトは英語で表示される.操作要素はスライダーとボタンのみであり,英語が不得意でも操作に支障はない.

操作手順

  1. URLにアクセスする.

    Neural Network Playground:https://www.ccom.ucsd.edu/~cdeotte/programs/neuralnetwork.html

  2. ページ上部にデータ点の散布図と,分類の境目を示す曲線(決定境界.2種類のデータ点を分ける線)が表示される.画面下に H=9 と表示されたスライダーを確認する.H は,ネットワーク内部のニューロンの数を表す.
  3. マウスの右クリックと左クリックで,2種類の点を配置.「Clear points」をクリックで全ての点を消去.
  4. 「Start learn」をクリックすることでニューラルネットワークの学習開始.
  5. スライダーを左端(H=1)まで動かす.ニューロンが1個のみとなり,分類の境目が直線1本になることを観察する.
  6. スライダーを少しずつ右に動かし,H=2H=3H=4 と増やしていく.分類の境目が,直線の組み合わせから複雑な形状に変化していく様子を観察する.
  7. スライダーを右端(H=9)まで動かす.赤と青の点の配置にもよるが,曲線的で複雑な分類の境目が形成されることを観察する.
  8. 余裕があれば,同じ作者による関連ページ(手書き数字であるMNIST認識:https://www.ccom.ucsd.edu/~cdeotte/programs/MNIST.html)にアクセスし,手書き数字の分類を体験する.

ヒント

考察ポイント

演習3. A Machine Learning Playground の体験

A Machine Learning Playground(Scienxlab版)は,ニューラルネットワークの学習過程を対話的に可視化するWebサイトであり,登録不要で利用可能である.ニューロンの数,活性化関数,学習の速さなどを変更して,学習をリアルタイムに実行できる.本演習では,「入力の重みづけ,合計とバイアス,活性化関数の適用」「ニューラルネットワークのパラメータ(重みやバイアス)を最適化する」という仕組みを総合的に体験する.

A Machine Learning Playground:https://playground.scienxlab.org/

本サイトは,Googleが公開する TensorFlow Playgroundhttps://playground.tensorflow.org/)の拡張版である.UIと基本操作は原版と同一であり,活性化関数の種類と利用できるデータの追加などの拡張が施されている.他の教材や書籍で「TensorFlow Playground」という名称に出会った際は,同系統のツールである.原版も同じ操作方法で利用できる.

事前準備:演習2を先に体験しておくと理解しやすい.

注意:本サイトは英語で表示される.操作要素は主にボタンとドロップダウンメニューであり,英語が不得意でも直感的に操作できる.

操作手順

  1. 上記URLにアクセスする.

    A Machine Learning Playground:https://playground.scienxlab.org/

  2. 画面左にDATA(使用するデータの選択),中央にFEATURES(入力の選択)とHIDDEN LAYERS(ニューロンの層)の構造図,右にOUTPUT(出力と誤差)が表示される.
  3. 画面上部の実行ボタン(▶)をクリックして学習を開始する.誤差(Training loss と Test loss.訓練時の誤差と検証時の誤差)の値が減少し,右の出力領域で,2種類のデータ点を分類する境目が形成されていく様子を観察する.
  4. 一時停止ボタンで学習を止めることができる.
  5. リセットボタン(↺)で初期状態に戻す.
  6. 左のDATAで,異なるデータ分布を選択する.各データ分布で学習を実行し,分類の難易度の違いを観察する.
  7. 中央のHIDDEN LAYERSの「+」「-」ボタンで,ニューロンの層の数と各層のニューロンの数変更する.変更後に再度学習を実行し,分類の境目の形状の変化を観察する.
  8. 余裕があれば,画面上部のActivation(活性化関数)ドロップダウンで,活性化関数を順に切り替える.各設定で学習を実行し,収束の速さと分類の境目の違いを観察する.
  9. 学習中は,ニューロン間を結ぶ線の(青:正の重み,橙:負の重み)と太さ(重みの絶対値の大きさ)の変化を観察する.
  10. 線にマウスカーソルを重ねると,重みが表示される.
  11. ニューロンの左下の小さな四角にマウスカーソルを重ねると,バイアスが表示される.

ヒント

考察ポイント

スライド資料と演習手順の資料は,https://www.kkaneko.jp/mi/index.html で,各回の授業開始時刻までに掲載する.

セレッソコースニュースで授業に関するお知らせを配信する.また,小テスト機能で課題を出すため,あわせて確認する.

本科目の資料は,以下の2種類で構成される.

  • スライド資料:授業中にプロジェクタで説明するスライド(パワーポイント,PDF同じ内容)
  • 演習手順の資料:演習で使用する

第5回. ニューラルネットワークの基本構造と画像分類

ニューラルネットワークは脳神経回路を模した構造であり,各ニューロンは入力への重みづけ,合計とバイアス,活性化関数の適用という3段階で処理を行う. 学習は誤差に基づき重みとバイアスを修正する反復処理であり,繰り返しごとに誤差が減少するように処理を行う. 活性化関数は非線形変換を担い,中間層ではReLUなどを利用し,最終層では出力を確率へ変換するソフトマックスを用いるなど,層の役割に応じて使い分ける. 中間層を複数備えたディープニューラルネットワークは複雑なパターンの学習を可能にする.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

Chromeブラウザの翻訳機能の使い方

画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる.

手順A:ページ上の文字のない場所(余白)を右クリックする.

手順B:表示されたメニューから「日本語に翻訳」を選ぶ.

手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ.

注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい.

演習1. Neural Network Visualizer による画像分類の学習体験

Neural Network Visualizer は,ニューラルネットワークの構造と学習過程をブラウザ上で視覚的に観察できる教材サイトであり,登録不要で利用できる.データセットの選択,ネットワーク構成の指定,訓練の実行,訓練中のニューロンの活性度の変化を確認できる.

Neural Network Visualizer のサイト:https://www.nn-visual.com/

操作手順

  1. URLにアクセスする.

    Neural Network Visualizer のサイト:https://www.nn-visual.com/

  2. 画面上部に「1 Pick Dataset」「2 Configure Network」「3 Initialize」「4 Train」の4つのセクションが順に並ぶ.
  3. 「1 Pick Dataset」セクションで,表示されているデータセットの中から「iris」のカードをクリックして選択する.iris は,あやめの花びら,がく片の幅と高さを測定したデータである. iris を選んだら,下の「Next: Configure Network」をクリックして次に進む.
  4. 「2 Configure Network」セクションで,中間層の数と各層のニューロン数を確認する.初期設定のままで実行できるため,変更しなくてよい.下の「Next: Review & Initialize」をクリックして次に進む.
  5. 「3 Initialize」セクションで「Initialize Model」ボタンをクリックし,ニューラルネットワークを初期化する.ネットワーク図に,入力層・中間層・出力層のニューロンと結合が表示される.
  6. 「4 Train」セクションの訓練開始ボタンである「Start Training」または「Train」繰り返しクリックする.訓練中に,ネットワーク図でニューロンの明るさ(活性度)が変化する様子を観察する.画面下部の「Training Loss」グラフで,学習の繰り返しごとに損失(誤差)が減少する様子を確認する.
  7. 余裕があれば,「2 Configure Network」に戻って中間層の数やニューロン数を変更し,「3 Initialize」で初期化しなおして訓練を行い,分類精度や学習過程の変化を比較する.

ヒント

考察ポイント

演習2. ReLU(Pythonで実現)

ReLU は,ニューラルネットワークで用いられる活性化関数の一つである.負の入力を 0 に変換し,0 以上の入力はそのまま出力する関数である.本演習では,ReLU関数を実装したPythonプログラムを実行し,異なる入力値(負数,0,正数)に対する変換結果を確認することを目的とする.条件分岐(ifelse)によるプログラミングも体験する.

ソースコードのURL:https://trinket.io/python/61c6503fcada

操作手順

  1. URLにアクセスする.

    ソースコードのURL:https://trinket.io/python/61c6503fcada

  2. 画面の左側にソースコード,右側に実行結果(Result)が表示される.
  3. 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
  4. 右側に,入力値 x = -2, -1, 0, 1, 2 のそれぞれに対する relu(x) の値が順に表示されることを確認する.
  5. 動作確認の後,左側のソースコード(入力値のリストや関数の定義)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.

ヒント

考察ポイント

演習3. 入力の重みづけ,合計とバイアス,活性化関数の適用

1つのニューロンに2つの入力 (x1, x2) を与え,重みとの掛け算,合計,バイアスの加算,活性化関数(ReLU)の適用という一連の計算を行う.本演習では,1つのニューロンの計算をPythonで実行し,4つの入力パターンに対する活性度を求める.重み,バイアス,活性化関数という3つの基本要素の役割と連携を理解する第一歩となる.

ソースコードのURL:https://trinket.io/python/1c339b660ee1

操作手順

  1. 上記のURLにアクセスする.

    ソースコードのURL:https://trinket.io/python/1c339b660ee1

  2. 画面の左側にソースコード,右側に実行結果(Result)が表示される.
  3. 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
  4. 右側に,入力 (0, 0), (0, 1), (1, 0), (1, 1) のそれぞれに対する活性度が表示されることを確認する.
  5. 動作確認の後,左側のソースコード(重み,バイアス,入力など)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.

ヒント

考察ポイント

演習4. ニューラルネットワーク

複数のニューロンを層として組み合わせると,1層の場合より複雑な判断ができる.本演習では,3つのニューロン(n1,n2,n3)から成るニューラルネットワークをPythonで実行し,4つの入力パターンに対する活性度を求める.複数のニューロンが層を形成することによる情報処理の基礎を体験する.

ソースコードのURL:https://trinket.io/python/3cbc3f3ed057

操作手順

  1. 上記のURLにアクセスする.

    ソースコードのURL:https://trinket.io/python/3cbc3f3ed057

  2. 画面の左側にソースコード,右側に実行結果(Result)が表示される.
  3. 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
  4. 右側の Result 欄に,入力 (0, 0), (0, 1), (1, 0), (1, 1) のそれぞれに対する活性度が表示されることを確認する.
  5. 動作確認の後,左側のソースコード(各ニューロンの重み・バイアス,入力など)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.

ヒント

考察ポイント

演習5. Fashion MNIST 画像分類のコード読解

TensorFlow のチュートリアル「基本的な画像分類」は,Fashion MNIST(衣料品・履物・バッグの計10クラスの28×28画素のグレースケール画像)を題材に,ニューラルネットワークによる画像分類の一連の流れをPythonコードで示している.本演習では,このチュートリアルのページをログインせずに閲覧し,説明文とソースコードを読み取って,画像分類の処理の流れを理解することを目的とする.コードの実行は行わない.コードに含まれる出力例(学習過程の表示,分類結果の図)も併せて確認する.

チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification

操作手順

  1. 上記のURLにアクセスする.

    チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification

  2. ページが表示される.ログインは不要である.
  3. ページを上から順に読み進める.ページは見出しごとに分かれている.
  4. 「Fashion MNIST データセットをインポートする」のセクションで,fashion_mnist.load_data() によって訓練データ60,000枚とテストデータ10,000枚が読み込まれることを,説明文とコードから読み取る.10クラスのラベル(T-shirt/top,Trouser,Pullover,Dress,Coat,Sandal,Shirt,Sneaker,Bag,Ankle boot)の対応表を確認する.
  5. 「データの前処理」のセクションで,画素値が 0〜255 の整数であることをコード train_images = train_images / 255.0 によって 0〜1 の範囲に変換していることを確認する.
  6. 「モデルの構築」のセクションで,tf.keras.Sequential によるモデルの定義を読み取る.コードは Flatten(28×28画素を784の1次元配列に変換)→ Dense(128, activation='relu')(中間層 128 ニューロン,活性化関数 ReLU)→ Dense(10)(出力層 10 ニューロン)の順となっている.重みづけ・合計・バイアスの加算・ReLU の適用が,各層で行われていることを確認できる.
  7. 「モデルの訓練」のセクションで,model.fit(train_images, train_labels, epochs=10) による学習の出力例を確認する.訓練の繰り返し(Epoch 1/10 から Epoch 10/10)ごとに,損失(loss)が減少し,正解率(accuracy)が上昇する様子をページ内の出力例から読み取る.
  8. 「予測する」のセクションで,10クラスそれぞれの確率として分類結果が得られることを確認する.predictions[0] の出力(10個の数値)を見て,最も大きい値に対応するクラスが分類結果となることを np.argmax の説明から読み取る.
  9. 同セクションの図(テスト画像と棒グラフ)を確認する.棒グラフは10クラスそれぞれの確率を示す.正解の場合は青,不正解の場合は赤で表示される.

ヒント

考察ポイント

第6回. 学習と検証,学習不足,過学習,学習曲線

ニューラルネットワークの学習は,誤差算出・パラメータ更新を反復し,予測と正解の誤差を最小化する. 学習の目的は未知のデータにも対応する「汎化」であり,検証データを用いてその性能を評価する. 訓練データにのみ適合する過学習を防ぐため,データの増量や多様性向上,ネットワークの簡素化等を行う. 学習曲線の推移から訓練と検証の誤差が開き始める時点を過学習のサインと捉え,最適な学習状態を見極める.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. 学習曲線の観察

本演習は,Google Colab上にプログラムと実行結果がすでに公開されている.利用者はそれを閲覧して観察するものであり,プログラムを自分で実行したり書き換えたりする必要はない.

観察対象は,同じ訓練データを用いた学習を20回繰り返し,学習の繰り返しごとに,訓練データと検証データに対する精度や誤差を算出した結果である.学習終了後の出力として,4つの画像(例:2,0,4,8)の分類結果(各カテゴリ0〜9の確率である10個の数値),学習終了時の結合の重み,および学習曲線(誤差の推移グラフ)が掲載されている.

プログラムの公開URL:https://colab.research.google.com/drive/1IfArIvhh-FsvJIE9YTNO8T44Qhpi0rIJ?usp=sharing

手順

  1. Webブラウザで,プログラムの公開URL「https://colab.research.google.com/drive/1IfArIvhh-FsvJIE9YTNO8T44Qhpi0rIJ?usp=sharing」を開く.
  2. このページは閲覧するだけで観察ができる.Googleアカウントは不要である.
  3. ページの先頭から末尾まで,各セルのプログラム,実行済みの結果,および説明文を順に閲覧する
  4. 学習の繰り返しを行うプログラムのセルでは,プログラム上の記述として,繰り返し回数EPOCHS=20,訓練データの指定(x=ds_train[0]y=ds_train[1]),検証データの指定(validation_data=(ds_test[0], ds_test[1]))の3か所を確認する.
  5. 同セルに掲載されている実行済みの出力のうち,Epoch 1/20 〜 Epoch 20/20の各行を見る.各エポックのloss(訓練データの誤差),accuracy(訓練データの精度),val_loss(検証データの誤差),val_accuracy(検証データの精度)の4つの数値が表示されていることを観察する.
  6. 結合の重みを表示するセル(m.get_weights()[2])に掲載されている出力を見て,学習終了時の結合の重みが多数の数値として表示されていることを観察する.
  7. 分類結果が掲載されているセルを見て,各画像について最終層の10個のニューロンから出力された10個の数値を観察する.画像ごとに,最も大きい値(≒1)となっているのが正解のカテゴリの位置であることを観察する.
  8. 誤差についての学習曲線のグラフが掲載されている箇所を見て,実線(訓練データの誤差)点線(検証データの誤差)が,学習の繰り返し(エポック)に伴ってどのように変化しているかを観察する.

ヒント

考察ポイント

演習2. ニューロン数の異なるニューラルネットの学習曲線の比較

本演習も,Google Colab上にプログラムと実行結果がすでに公開されている.利用者はそれを閲覧して観察するものであり,プログラムを自分で実行したり書き換えたりする必要はない.

観察対象は,中間層のニューロン数のみが異なる3種類のモデル(400,4000,40000)について,20回の学習の繰り返しののち,検証データでの分類の正解率(分類精度)を計測した結果である.3つの結果を見比べることで,ニューロン数のちがいによる影響を観察する.

プログラムの公開URL:https://colab.research.google.com/drive/1-UWl-WEPmmNo-S_O17E5XPkF4tphE6xz?usp=sharing

手順

  1. Webブラウザで,プログラムの公開URL「https://colab.research.google.com/drive/1-UWl-WEPmmNo-S_O17E5XPkF4tphE6xz?usp=sharing」を開く.
  2. このページは閲覧するだけで観察ができる.Googleアカウントは不要である.
  3. ページの先頭から末尾まで,各セルのプログラム,実行済みの結果,および説明文を順に閲覧する
  4. 3種類のモデルそれぞれについて,プログラム上の中間層のニューロン数の設定箇所を見る.具体的には,1つ目のモデルが400,2つ目のモデルが4000,3つ目のモデルが40000に設定されていることを観察する.
  5. 各モデルについて掲載されている検証データでの分類精度(20回の学習後の正解率)の数値を読み取り,3つの値を見比べる.資料の例では,いずれも0.983となっている.
  6. 400のモデルについては次の部分.学習では乱数が使われているので,実際に表示される値は次のとおりにはならずわずかに変動する.

  7. 各モデルの学習曲線について,3つのグラフを見比べ,訓練データと検証データの誤差の推移のちがいを観察する.
  8. 400のモデルについては次の部分.学習では乱数が使われているので,実際に表示される値は次のとおりにはならずわずかに変動する.

ヒント

考察ポイント

演習3. 学習曲線の例(TensorFlowチュートリアル)

本演習は,TensorFlow公式チュートリアルの「オーバーフィットとアンダーフィット」のページを閲覧して観察するものである.ページ上には説明文と複数の学習曲線のグラフが掲載されており,利用者はそれらを読み,グラフを観察する.自分でプログラムを実行する必要はない.

手順

  1. WebブラウザでTensorFlowチュートリアルのトップページ「https://www.tensorflow.org/tutorials」を開く.
  2. 左側のメニューから「Keras による ML の基本」を展開(クリック)する.
  3. 展開された項目の中から「オーバーフィットとアンダーフィット」をクリックする.
  4. ページに記載の説明文をよく読み,理解を深める.
  5. ページ内に掲載されている学習曲線のグラフを観察する.実線(Train)は訓練データに対する誤差,破線(Val)は検証データに対する誤差を示す.
  6. 4種類のニューラルネットワーク(Tiny:1層目のユニット数16/Small:1層目16,2層目16/Medium:1層目64,2層目64,3層目64/Large:1層目512,2層目512,3層目512,4層目512)の学習曲線が並べて掲載されているグラフを見比べる.
  7. 過学習が起きていた「Large」に対し,L2正則化ドロップアウトを適用した結果の学習曲線が掲載されている箇所を観察する.青:Tiny/紫:Large + L2正則化/茶:Large + ドロップアウト/赤紫:Large + L2正則化 + ドロップアウト,の4本の曲線が示されている.

ヒント

考察ポイント

第7回. さまざまな機械学習 ー 機械学習の広がりを学ぶ

前回までに教師あり学習と画像分類を学んだ.今回はそこから,学習の枠組みを広げる方向(教師なし学習,強化学習,自己学習)と,扱うデータを広げる方向(系列データへの適用)を学ぶ.教師なし学習は,ラベル(正解)の無いデータから,パターン・構造・隠れた関係性を見つける手法である.応用範囲には,クラスタリング,異常検知,推薦システム,次元削減・データ圧縮がある.強化学習は,行動の結果として得られる報酬・ペナルティを手がかりに,より良い行動方針を学習する手法である.自己学習はその考え方を応用した発展的な形であり,経験の出どころが,強化学習では外部の環境であるのに対し,自己学習では自分自身との対戦である.系列データを扱う手法は,RNNからLSTMへと発展した.言語・音声を中心に主流はTransformerへ移行した.対話AIは,Transformer を使用しており,入力文から次に来る語を確率で予測し,それを繰り返して応答を作る.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. クラスタリング学習サイトの活用

クラスタリングは,似ているデータをクラスタに分ける手法である.本演習では,可視化サイト上でデータのまとまりに中心点(セントロイド)を置き,クラスタに分かれていく様子を観察する.

手順

  1. Webブラウザで,次のURLを開く.
    https://www.naftaliharris.com/blog/visualizing-k-means-clustering/
  2. 初期の中心点の選び方を尋ねる「How to pick the initial centroids?」の表示の下にある3つのボタン(I'll Choose,Randomly,Farthest Point)のうち,「Randomly」をクリックする.
  3. データの分布タイプを選ぶ箇所で,好みのものを1つ選ぶ(例:Gaussian Mixture).画面にデータが多数表示される.
  4. 「Add Centroid」をクリックする.クリックするたびに中心点が1つ追加される.自分が分けたいクラスタ数だけクリックする.
  5. 各データがどの中心点のクラスタに割り当てられ,中心点の位置がどのように動くかを観察する.位置の変化が止まる(収束する)まで繰り返し観察する.
  6. 別の条件で試す場合は,「Restart」をクリックして最初からやり直す.手順3〜5を繰り返す.

ヒント

考察ポイント


演習2. クラスタリングのPythonプログラムによる実行

本演習では,公開されているPythonプログラムを実行し,モール(商業施設)の顧客データに対してクラスタリングを行う.クラスタ数を1つずつ増やしながら,クラスタの分かれ方がどう変わるかを観察する.プログラムを自分で書き換える必要はない.

手順

  1. Webブラウザで,次のURLを開く.
    https://trinket.io/python/93ab2fb15488
  2. ページが開くと,左側にプログラム,右側に実行結果が表示される.右側に「K-means Clustering (k=2)」という見出しの散布図が表示されていることを確認する.
  3. 実行結果が表示されないときは,画面上部の「Run」(実行ボタン)をクリックして実行する.
  4. 右下の実行結果の画面に「Press Enter to see the next plot (k=3)...」と表示されていることを確認する.
  5. その右下の画面(「Press Enter to see the next plot」と表示されている画面)を一度クリックし,続けてEnterキーを押す.
  6. クラスタ数が3に増えた散布図が表示されるので確認する.
  7. その後,手順5(画面をクリックしてEnterキー)と手順6(クラスタ数が増えた結果の確認)を繰り返す.Enterキーを押すたびにクラスタ数が4,5,6…と増えていく.

ヒント

考察ポイント


演習3. LSTM を用いた予測の例

系列データとは,順序付けられたデータの並びである.本演習では,毎日の太陽の黒点数という系列データを扱う.過去のデータをもとに将来を予測したプログラムと,その実行結果(実際のデータと予測結果)を閲覧して観察する.プログラムを自分で実行したり書き換えたりする必要はない.

手順

  1. Webブラウザで,次のURLを開く.
    https://colab.research.google.com/drive/1tLfijmXCJyg--4Jr5pbzV5G7p_3LILQD?usp=sharing
  2. ページの先頭から末尾まで,各セルのプログラムと,掲載されている実行済みの結果を順に閲覧する.その際,スクロール操作が必要.Googleアカウントは不要で,閲覧するだけで観察できる.
  3. 掲載されている2つのグラフを見る.左のグラフ(「2000年以降の黒点数(実測値)」)が実際のデータであり,右のグラフ(「1848年から1999年までの黒点数をもとに AI が予測した 2000年以降の黒点数」)が過去データからの予測であることを確認する.
  4. 左のグラフ(実際のデータ)で,黒点数が時間とともに増えたり減ったりを繰り返している様子を観察する.
  5. 右のグラフ(予測)で,過去のデータだけから予測した黒点数が,どのような増減を示しているかを観察する.
  6. 左(実際)と右(予測)の2つのグラフを見比べ,増減のタイミングや波の形がどの程度似ているか,どの程度違っているかを観察する.

ヒント

考察ポイント

第8回. AIとコンピュータビジョン

デジタル画像は格子状の画素から成り,濃淡は0〜255,カラーはRGB各0〜255の数値で表現される. ディープラーニングは多層構造のニューラルネットワークを用いて,低次(エッジ・色),高次(物体)の特徴を抽出する. 畳み込みニューラルネットワーク(CNN)は畳み込み層・プーリング層・全結合層を組み合わせたニューラルネットワークで,画像の局所的特徴を効率的に捉えることができる.画像理解は,主な3種類として,分類物体検出セグメンテーションがある.これらは,顔処理や自動運転等に応用される.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. CNN Explainer による画像分類ネットワークの観察

CNN Explainer は,畳み込みニューラルネットワーク(CNN)の構造と各層の処理結果をブラウザ上で視覚的に観察できる教材サイトである.ジョージア工科大学 Polo Club が公開しており,登録不要で利用できる.画像分類を行うネットワークが,畳み込み層・プーリング層・全結合層から構成される様子を確認できる.

CNN Explainer のサイト:https://poloclub.github.io/cnn-explainer/

操作手順

  1. Webブラウザで次のURLを開く.

    CNN Explainer のサイト:https://poloclub.github.io/cnn-explainer/

  2. 画面が表示されたら,画面上部に並ぶ画像(複数の写真)の中から1つをクリックして選択する.選択した画像が,左端の「input」に入力画像として表示される.
  3. 左端の「input」の下に,選んだ画像の赤(Red channel)・緑(Green)・青(Blue)の3つの成分が表示されることを確認する.これはカラー画像がRGBの3つの数値で構成されることを示している.
  4. 画面右端の「output」を見る.ここに各クラスの分類結果が表示される.最も反応が大きいクラスが分類結果である.
  5. 画面中央には,各層の処理結果が画像として並んで表示される.上部のラベルで「conv」が畳み込み層,「relu」が活性化関数(ReLU)の処理,「max_pool」がプーリング層であることを確認する.
  6. 中央に並ぶ画像のうち,左上の処理結果画像を1つクリックする.畳み込みの様子がアニメーションで表示される.
  7. 表示されたアニメーション内の処理途中の画像をさらにクリックすると,カーネルを重ね合わせて1つの値を計算する詳細な畳み込み過程をアニメーションで確認できる.
  8. 確認を終えたら,アニメーション右上の閉じるボタンで表示を閉じ,別の入力画像を選んで同様に観察する.

ヒント

考察ポイント

演習2. Animated AI による畳み込みアルゴリズムの観察

Animated AI は,ニューラルネットワークのアルゴリズムをアニメーションで解説する教材サイトである.登録不要で利用できる.トップに置かれた「The Basic Algorithm」では,畳み込みの仕組みをアニメーションで観察できる.

Animated AI のサイト:https://animatedai.github.io/

操作手順

  1. Webブラウザで次のURLを開く.

    Animated AI のサイト:https://animatedai.github.io/

  2. ページが表示されたら,トップにある「The Basic Algorithm」のアニメーションを表示する.このアニメーションは畳み込みの基本的な処理を示している.
  3. アニメーションの中で,左側に表示される「元データ」を確認する.元データは3次元(縦・横・成分の方向に広がる立体)である.
  4. 右側に表示される複数の「カーネル」を確認する.この例ではカーネルは全部で8個ある.各カーネルも3次元である.
  5. カーネルが元データ上を移動しながら重ね合わせ(掛け算と合計)を行い,「畳み込み結果」が作られていく様子をアニメーションで観察する.
  6. アニメーションを繰り返し再生し,カーネルが移動する順序と,結果が1マスずつ埋まっていく対応を確認する.

ヒント

考察ポイント

演習3. YOLO による物体検出(Google Colaboratory)

Google Colaboratory 上に用意されたページで,物体検出モデル YOLO のプログラム・説明・実行結果を確認する.YOLO は,物体の位置と種類を一括で予測する物体検出モデルである.

Google Colaboratory のページ:https://colab.research.google.com/drive/18IPPkY96Oc6jkYD2su4cFgWcoYAskLo_?usp=sharing

操作手順

  1. Webブラウザで次のURLを開く.

    Google Colaboratory のページ:https://colab.research.google.com/drive/18IPPkY96Oc6jkYD2su4cFgWcoYAskLo_?usp=sharing

  2. ページが表示されたら,プログラム・説明・実行結果が掲載されていることを確認する.上から順に,各自でよく読む.
  3. ページ内を下にスクロールし,「5. 物体検出と YOLO」の項目を確認する.
  4. 「5. 物体検出と YOLO」【概要】に記載された使用モデルと特徴の説明を読む.使用モデルは YOLOv5(COCOデータセットで学習済み)である.
  5. 掲載されている実行結果を見て,画像中の物体が四角形(バウンディングボックス)で囲まれ,種類のラベルが付けられている様子を確認する.

ヒント

考察ポイント

第9回. 知識表現と推論

AIにおける知識表現では,知識を「事実」と「ルール」に整理し,推論により自動的に結論を導く.金融の自動審査や不正検知など,明確なルールに基づく判定と,その判断理由の説明が求められる業務に有用である.機械学習が大量データから見つけたルールを推論に適用することで,より高度で説明可能なAIシステムの構築が可能である.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. Prolog による推論

オンラインのProlog環境である SWISH を利用して,Prologの基本動作と推論エンジンによる自動判定を体験する

操作手順

  1. Webブラウザで SWISH のサイトにアクセスする.
    SWISH のサイト:https://swish.swi-prolog.org
  2. 画面左上の「Program」をクリックし,Prologのプログラム編集画面を開く.
  3. プログラムの編集画面(Your Prolog rules and facts go here)に,以下の事実とルールを入力する:
    human(hanako).
    human(taro).
    think(X) :- human(X).
  4. 画面右下の問い合わせ入力欄(?-の右側)に human(X). と入力し,右下の「Run」ボタンをクリックする.さらに「Next」ボタンをクリックし,答えが増えなくなるまで結果(X = hanako, X = taro)を確認する.
  5. 前の問い合わせを消してから,新たに think(X). と入力して「Run」ボタンをクリックし,「Next」ボタンで答えが増えなくなるまで確認する(X = hanako, X = taro).
  6. 問い合わせ入力欄を think(taro). に書き換えて「Run」ボタンをクリックし,結果に true と表示されることを確認する.

ヒント

考察ポイント


演習2. 家族関係の推論

家族関係を例にして,複数の事実とルールに基づく推論と,成り立たない場合の結果を確認する.

操作手順

  1. 引き続き SWISH の「Program」編集画面を利用する.
  2. 編集画面の内容をクリアし,以下の新しいプログラムを入力する:
    male(ali).
    female(zeyn).
    female(anne).
    parent(ali, anne).
    parent(zeyn, anne).
    child(Y, X) :- parent(X, Y).
  3. 問い合わせ入力欄に male(ali). と入力し「Run」ボタンをクリックして,結果が true になることを確認する.
  4. 前の問い合わせを消し,male(anne). と入力して「Run」ボタンをクリックし,結果が false になることを確認する.
  5. 問い合わせ入力欄を parent(ali, anne). に書き換えて「Run」ボタンをクリックし,結果が true になることを確認する.
  6. 問い合わせ入力欄を child(anne, ali). に書き換えて「Run」ボタンをクリックし,結果が true になることを確認する.

ヒント

考察ポイント


演習3. 様々な問い合わせ

同じ家族関係のプログラムを使い,変数を組み合わせた多様な問い合わせを行い,Prologがどのように答えを探索するかを観察する.

操作手順

  1. 演習2で入力したプログラムをそのまま使用する.
  2. 問い合わせ入力欄に male(X). と入力して「Run」ボタンをクリックし,X = ali と表示されることを確認する.
  3. 問い合わせ入力欄を female(X). に書き換えて「Run」ボタンをクリックする.さらに「Next」ボタンをクリックして答えが増えなくなるまで確認し,結果が X = zeynX = anne になることを確認する.
  4. 問い合わせ入力欄を parent(X, Y). に書き換えて「Run」「Next」をクリックし,すべての結果(X = ali, Y = anneX = zeyn, Y = anne)を確認する.
  5. 同様に child(X, Y). を入力して確認し,結果(X = anne, Y = aliX = anne, Y = zeyn)を確認する.
  6. 問い合わせ入力欄を parent(ali, Y). と書き換えて「Run」ボタンをクリックし,結果(Y = anne)を確認する.
  7. 最後に child(ali, Y). と書き換えて「Run」ボタンをクリックし,結果が false となることを確認する.

ヒント

考察ポイント

スライド資料と演習手順の資料は,https://www.kkaneko.jp/cs/index.html で,各回の授業開始時刻までに掲載する.

セレッソコースニュースで授業に関するお知らせを配信する.また,小テスト機能で課題を出すため,あわせて確認する.

本科目の資料は,以下の2種類で構成される.

  • スライド資料:授業中にプロジェクタで説明するスライド(パワーポイント,PDF同じ内容)
  • 演習手順の資料:演習で使用する

第10回. 探索,総当たり,発見的探索

AIの基礎の1つとして「状態(今の状況)・行動(取りうる操作)・遷移関数(行動で状態がどう変わるか)」の枠組みがある.これは,行動による状態変化を扱うものであり,「適用条件」は,行動が可能である条件を示す. 遷移関数をもとに,将来にわたる可能な行動と状態を算出(探索)し,算出された状態を評価して実際に行動を絞る(選択)という二段階処理で,将来の行動の探索と選択ができる.これは,ゲームAI,自動運転,在庫管理など幅広く応用できる. 起点から枝分かれする経路(パス)の集まりを「」という.木を使うことで,調べ済みの経路を二度たどらず未探索の経路を一つずつ調べることが簡単にできるようになる. 総当たりは全経路を試し最適解を得る.A*法は「来た道の長さ+ゴールまでの見積もり」が小さい行動を優先して調べる.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. 総当たり(パスと木構造をアニメーションで観察)

この演習では,Python の turtle グラフィックスを使い,同じ起点から始まる5つのパス(経路)がアニメーションで順番に描かれる様子を観察する.総当たりが「すべてのパスを試す」とはどういうことか,パスと木構造の関係を体感することを目的とする.

使用するサイト(trinket,登録不要・ブラウザのみで実行可能):
https://trinket.io/python/912b1bb2e3

操作手順

  1. Webブラウザのアドレス欄に https://trinket.io/python/912b1bb2e3 と入力し,このページを開く.
    trinket の編集画面が表示され,画面の左側に Python のプログラム(main.py),右側に実行結果(Result)の領域が並ぶ.
  2. 実行が開始していない場合は,画面上部の実行(▶ Run)ボタンをクリックして,プログラムを実行する.
  3. 右側に,turtle が描く線がアニメーションで表示される.5つのパスが1本ずつ順番に描かれていくので,それぞれが起点(同じ開始位置)からどの方向へ進むかを観察する.
  4. 各パスが描かれるとき,画面に 1 (1,0) のように行動番号と移動先の座標が表示される.数字が,今どのパスのどの行動を実行しているかを示している.

ヒント

考察ポイント

演習2. A*法による迷路探索(発見的探索の観察)

この演習では,A*法(エイ・スター法)で迷路の最短経路を探索する過程を,ブラウザ上のシミュレータで観察する.A*法が「来た道の長さ+ゴールまでの見積もり」を手がかりに,ゴールに近そうな方向へ絞って効率よく探索する様子を確認することを目的とする.

使用するサイト(PathFinding.js,登録不要・ブラウザのみで利用可能):
https://qiao.github.io/PathFinding.js/visual/

操作手順

  1. Webブラウザのアドレス欄に https://qiao.github.io/PathFinding.js/visual/ と入力し,このページを開く.
    格子状のマス目(グリッド)が表示され,緑のマスが起点,赤のマスが終点である.
  2. 画面左上のアルゴリズム選択欄が 「A*」 になっていることを確認する.なっていない場合は,選択欄をクリックして一覧から 「A*」を選ぶ
  3. グリッド上でマウスのボタンを押したままドラッグして,灰色の壁(障害物)を描き,迷路を作る.緑(起点)と赤(終点)のマスは,それぞれドラッグして好きな位置に動かせる.
  4. 画面上の 「Start Search」ボタンをクリックして,探索を開始する.
  5. 探索の様子を観察する.水色のマスは探索された部分薄緑のマスは通らないことにした方向を表す.探索が終わると,起点から終点までの黄色の線が最短経路として表示される.
  6. 別の迷路を試すときは,「Clear Walls」ボタンをクリックして壁を消し,新しい迷路を描いてから,再び「Start Search」をクリックする.

ヒント

考察ポイント

第11回. プログラミング基礎と探索アルゴリズム

プログラミングには,入力,出力,順次実行,条件分岐,繰り返しという5つの基本機能がある.AI を動かすための状態・行動・遷移関数は,このうち変数と関数を使って表現できる.すなわち,状態は変数で,遷移関数は関数で記述できる.そして,これらを組み合わせれば探索も実現できる. 探索で解ける問題の例として,「2つの水差し問題」がある.この問題では,8通りの行動の組み合わせを総当たりで試すことで,目標とする水量に達する手順を見つけ出すことができる. 一方,あらかじめ必勝の方針が分かっている問題もある.「21ゲーム」では,後手が自分の手番のたびに合計を4の倍数に保てば必ず勝てる.この戦略どおりに打つプログラムも,同じ枠組みで実現できる.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習1. 2つの水差し問題のプログラムによる総当たり探索

容量4の水差し①と容量3の水差し②を使い,「8つの行動」を組み合わせて到達できる水の量をすべて見つける演習である.水差しの状態を変数 (x, y) で表し,x は水差し①の水の量,y は水差し②の水の量である.プログラムは trinket(Python や HTML のプログラムをブラウザ上で書いて実行できるサイト)上で,登録不要で実行できる.プログラム内の変数 nsteps が行動回数を示しており,初期値は nsteps = 2 である.

演習1のプログラムのURL:https://trinket.io/python/1b2d25b99b

操作手順

  1. 演習1のプログラムのURL https://trinket.io/python/1b2d25b99b をブラウザで開く.画面の左側にソースコードの編集画面,右側に実行結果が表示される.
  2. 画面上部の「Run」ボタン(実行ボタン)をクリックしてプログラムを実行する.実行が自動で始まっている場合は,そのまま結果を確認する.
  3. 右側の実行結果に,[行動の番号の並び] x y の形式で,nsteps = 2 回の行動を組み合わせた経路ごとに,最終的な水差し①の水の量 x と水差し②の水の量 y が表示される.表示された全ての行を確認し,2回の行動で到達できる (x, y) の組をすべて読み取る.
  4. ソースコード中の nsteps = 2 の行を nsteps = 3 に書き替える(「3」は必ず半角の数値にすること).書き替えはソースコード編集画面の該当行をマウスでクリックして数字を直接編集する.書き替えたら「Run」ボタンを再度クリックして実行する.3 回の行動で到達できる (x, y) の組を確認する.
  5. 同じ手順で,nsteps = 4 に書き替え(「4」は必ず半角の数値にすること)て再実行する.4回の行動で到達できる (x, y) の組を確認する.資料の例では,4回の行動で [5, 8, 5, 7] 4 2 という出力があり,行動 5 → 行動 8 → 行動 5 → 行動 7 の順で行うと x = 4, y = 2 となり,水差し②の水の量が 2 になることが示されている.自分の実行結果からも,水差し①または水差し②の水の量が 2 になる経路を探す.
  6. 実行を止めたいときは,画面上部の「Stop」ボタンをクリックする.

ヒント

考察ポイント


演習2. 21ゲームでの後手必勝アルゴリズムの体験

0から始めて,自分のターンに1・2・3のいずれかを足し合計に加える.21を言った(合計を21にした)方が負けというゲームである.後手は,自分のターン終了時の合計を常に「4の倍数」に保てば必ず勝てる.この演習では,ユーザ(自分)が先手,コンピュータが後手となり,コンピュータが後手必勝のアルゴリズム r = (4 - a % 4) % 4(r が 0 のときは r = 1 に補正)で動作する.プログラムは trinket 上で登録不要で実行できる.

演習2のプログラムのURL:https://trinket.io/python/58bb317816

操作手順

  1. 演習2のプログラムのURL https://trinket.io/python/58bb317816 をブラウザで開く.画面の左側にソースコードの編集画面,右側に実行結果が表示される.
  2. 画面上部の「Run」ボタン(実行ボタン)をクリックしてプログラムを実行する.実行が自動で始まっている場合は,そのまま次へ進む.
  3. 右側の実行結果欄に「あなたの番(1〜3):」と表示されたら,マウスでその右側の入力欄をクリックして,半角の数字で 1,2,3 のいずれかを入力し,Enter キーを押す.入力を間違えたときは Del キーまたは BS キーで消す.
  4. 入力後,「a = ○」の形式で,自分のターン終了時の合計 a が表示される.続いてコンピュータが行動し,「computer: ○, a = ○」の形式で,コンピュータが選んだ数と,コンピュータのターン終了時の合計 a が表示される.
  5. 同じ手順を繰り返す.自分のターンが来るたびに,1・2・3 のいずれかを半角で入力し,Enter キーを押す.
  6. 合計が 21 になったときにゲームが終わる.「あなたの負けです」と表示された場合,ユーザの負けである.画面上部の「Stop」ボタンをクリックして終了する.
  7. 余裕があれば,「Run」ボタンを再度クリックして再開し,1・2・3の入力の組み合わせを変えて,何度か対戦を試す.

ヒント

考察ポイント

第12回. 自然言語処理

自然言語処理は人間の言葉をコンピュータに処理させる技術で,言葉の曖昧性・表現の多様性・常識や文化的背景の理解などの課題を持つ. 自然言語処理の応用技術としては,固有表現抽出・類似度分析・意味的検索・トピックモデリング・感情分析などの分析応用系と,構文解析・意味解析・翻訳の構造変換系がある. 単語や文を数値の並び(ベクトル)に変換すると意味の近さを距離として計算でき,類似語の取得・意味的検索・文の類似度判定が可能になる. 演習ではKNPによる構文解析,DeepL翻訳,Transformerによる感情分析,Web上の単語頻度分析を扱う.

スライド資料

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

[演習の詳細を表示するには,この行をクリックしてください]

演習1. KNP による構文解析

構文解析(こうぶんかいせき)は,自然言語処理の一部で,文章の構造を分析し,文章内の単語の係り受け(かかりうけ)の解析を行う技術である.KNP は,文を入力すると単語のかたまり(文節)どうしのつながりを自動で見つけてくれるツールである.

KNP のデモサイト:http://lotus.kuee.kyoto-u.ac.jp/nl-resource/cgi-bin/knp.cgi

手順

  1. Web ブラウザで,KNP のデモサイトの URL「http://lotus.kuee.kyoto-u.ac.jp/nl-resource/cgi-bin/knp.cgi」を開く.
  2. 「KNP を試してみる」というページが表示される.「入力文」と書かれた入力欄をクリックする.
  3. 入力欄に「空は青い」と入力する.
  4. 入力欄の右にある「Execute」ボタンをクリックする.
  5. 入力欄の下に解析結果が表示される.どの単語がどの単語に係る(かかる)かを読み取る.
  6. 入力欄の内容を消し,別の文として「白い雲と青い空が美しい」と入力し,「Execute」ボタンをクリックして結果を確認する.
  7. 自分でいくつかの文章を入力し,「Execute」ボタンをクリックして結果を確認する.

ヒント

考察ポイント

演習2. DeepL 翻訳

DeepL は,文章もファイルもそのまま翻訳できる無料の翻訳ツールである.原文を入力すると訳文が表示されるテキスト翻訳と,ファイルをそのまま翻訳するファイル翻訳がある.

DeepL のサイト:https://www.deepl.com/translator

手順

  1. Web ブラウザで,DeepL のサイトの URL「https://www.deepl.com/translator」を開く.
  2. 「テキスト」の翻訳画面で,左側の原文入力欄をクリックする.
  3. 原文入力欄に「白い雲と青い空が美しい」と入力する.
  4. 入力すると,右側に訳文が表示される.訳文を確認する.
  5. 翻訳先の言語を変更する場合は,右側の上部にある言語名(例:英語)をクリックして,別の言語を選ぶ.
  6. 左側の原文入力欄の内容を消し,別の文章を入力して,訳文の変化を確認する.

ヒント

考察ポイント

補足説明

WEBブラウザには翻訳機能がある.例えば,Chrome ブラウザでは,ページ上の文字のない場所(余白)を右クリックし,「日本語に翻訳」を選ぶと,ページ全体が日本語に切り替わる.

演習3. Transformer と Python による感情分析

感情分析は,文章に込められた感情を AI が自動で判定する技術である.この演習では,文章が「ポジティブ (positive)」か「ネガティブ (negative)」かを判定する Python プログラムのソースコードと実行結果を確認する.

Colab のページ:https://colab.research.google.com/drive/1-HgN6cDnIRO0bU-xIVpXPi0qrVbxNkOZ?usp=sharing

手順

  1. Web ブラウザで,Colab のページの URL「https://colab.research.google.com/drive/1-HgN6cDnIRO0bU-xIVpXPi0qrVbxNkOZ?usp=sharing」を開く.
  2. 表示されたページで,ソースコードと実行結果を上から順に読む.
  3. 実行結果に表示される,各文章の判定(positive または negative)とスコアを確認する.「プログラミングが大好きです!」が positive,「今日はとても悲しいです.」が negative と判定されていることを確認する.
  4. Google アカウントを持っている場合は,コードの中の判定したい文章の部分を変更して,別の文章を試すことができる.

ヒント

考察ポイント

演習4. Web ページの中の主要単語

この演習では,ネット上の文章を集めて分析する Web テキスト処理を体験する.Web ページをダウンロードし,タグを除去して文章だけを残し,単語に分割し,よく出る単語を数えてグラフ化する.題材は Wikipedia の富士山の記事であり,自動でダウンロードされる.

Colab のページ:https://colab.research.google.com/drive/1sTPY7DBmlcFVf5UF1v81JBlO-HWujeEu?usp=drive_link

手順

  1. Web ブラウザで,Colab のページの URL「https://colab.research.google.com/drive/1sTPY7DBmlcFVf5UF1v81JBlO-HWujeEu?usp=drive_link」を開く.
  2. 表示されたページで,ソースコードと実行結果を上から順に読む.題材である Wikipedia の富士山の記事が自動でダウンロードされることを確認する.
  3. 実行結果に表示される,単語とその登場回数の一覧を確認する(例:富士山 423,年 375).
  4. 実行結果に表示される,登場回数が多い順に単語を並べたグラフを確認する.

ヒント

考察ポイント

第13回. AI とビッグデータ解析

ビッグデータはデータの量・速度・多様性が特徴である.量が多くても質が低ければ分析結果は誤る. 記述的分析(現状把握)と予測的分析(将来推定)は別物であり,相関があっても因果関係があるとは限らない. AIはデータから規則やパターンを自動学習する.学習データが偏っていれば,誤りが発生する. データの質を高めるには,表記の統一・欠損値の除外・外れ値の検出(例:IQR法)が必要である. データ結合では,キーとなる列の値が重複していないか(例:1日の売上が複数行に分かれる場合)を確認した上で結合することで混乱を防ぐことができる.

スライド資料

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

動画

[動画]

[演習の詳細を表示するには,この行をクリックしてください]

演習

AI を用いてデータを分析する際,表記ゆれ・外れ値・欠損値などの問題点を具体的に指示したほうが良い結果が得られるのか,それとも素朴な指示のほうが良い結果が得られるのかを,本演習で実際に確認する. なお,別のデータでAIを試す場合,必ずしも同じ傾向・結果になるとは限らない.

演習1. データ表現の基礎

たこ焼き店の売上記録(全30件)を使って,データ型・文字列の表記ゆれ・日付表記の違いを確認する.


プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する

プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する

操作手順

  1. WEBブラウザで,Microsoft 365 Copilot Chat(https://m365.cloud.microsoft/chat?auth=2)を開く.サインインが求められた場合は大学のIDとパスワードでサインインする.左のメニューで「新しいチャット」をクリック.
  2. 下の「演習1データ」全体コピーする.入力欄をクリックし,コピーしていたデータを貼り付ける.
  3. 貼り付けたデータの下に,下の「プロンプトA」の文章をそのままコピーして貼り付ける.
  4. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力A)が表示されるまで待つ.
  5. 出力Aの内容を,確認する.
  6. 左のメニューで「新しいチャット」をクリックし,新しいチャットを開始する(出力Aの内容がプロンプトBの回答に影響しないようにするため).
  7. 同じ「演習1データ」全体コピーして,チャットの入力欄に再度貼り付ける.
  8. 貼り付けたデータの下に,下の「プロンプトB」の文章全体コピーして,チャットの入力欄に再度貼り付ける.
  9. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力B)が表示されるまで待つ.
  10. 出力Aと出力Bを見比べながら,下の「ヒント」と「考察ポイント」を確認する.
演習1データ(たこ焼き店・売上記録)
日付,商品,個数,単価,備考
2026/10/12,たこ焼き,15,300,
10月12日,たこやき,10個,300,
2026-10-13,たこ焼き,,300,雨で客少
2026/10/13,タコ焼き,9999,300,入力ミス?
2026/10/14,たこ焼き,22,300,
2026/10/14,たこやき,18,300,
2026-10-15,タコ焼き,,300,
2026/10/15,たこ焼き,25,300,
10月16日,たこやき,20個,300,
2026/10/16,たこ焼き,19,300,
2026/10/17,たこ焼き,17,300,
10月17日,タコ焼き,14個,300,
2026-10-18,たこ焼き,,300,雨で客少
2026/10/18,たこやき,21,300,
2026/10/19,たこ焼き,9999,300,入力ミス?
2026/10/19,タコ焼き,16,300,
2026-10-20,たこ焼き,,300,
2026/10/20,たこ焼き,23,300,
10月21日,たこやき,12個,300,
2026/10/21,たこ焼き,20,300,
2026/10/22,たこ焼き,18,300,
2026/10/22,タコ焼き,15,300,
2026-10-23,たこ焼き,,300,雨で客少
2026/10/23,たこやき,24,300,
10月24日,たこ焼き,11個,300,
2026/10/24,タコ焼き,19,300,
2026/10/25,たこ焼き,22,300,
2026-10-25,たこやき,,300,
2026/10/26,たこ焼き,26,300,
2026/10/26,タコ焼き,17,300,
プロンプトA(素朴な指示)
「演習1データ」を分析してください。
プロンプトB(手法を指定した指示)
「演習1データ」を以下の手順で処理してください。

1. 各列(日付・商品・個数・単価)のデータ型を、数値型・文字列型・日付型のいずれかで判定してください。
2. 商品名の表記ゆれ(全角/半角、ひらがな/カタカナ、単位の混入)を検出し、同一商品として統一した場合の一覧を示してください。
3. 日付列の表記形式が何パターンあるか列挙し、統一形式(YYYY-MM-DD)に変換した結果を示してください。4. 以上を終えたら「演習1データ」を分析してください。
ヒント
  • 「表記ゆれ」を確認するときは,全角/半角,ひらがな/カタカナ,単位(「個」)の混入という3つの観点で確認する.
  • 日付の表記ゆれが,「2026/10/12」「2026-10-13」「10月12日」という3種類あることを念頭に置く.
考察ポイント
  • プロンプトAの出力で,分析不足や間違い(例:「たこ焼き」「たこやき」「タコ焼き」がそれぞれ別の商品として集計)を確認する.
  • プロンプトAの出力で,「10個」のように数字と単位が混ざった個数のセルが,無視されたかエラーになったかを確認する.
  • プロンプトAとプロンプトBで,分析結果の分量,範囲,正確性を確認する.プロンプトAのメリットは手軽さ,プロンプトBのメリットは・・・のように自分なりの考察をまとめる.
  • AIの結果が間違っている場合がある.人間の確認は必要である.繰り返し実行したり,他のAIで確認することも考える.

演習2. データ処理技術

今度は,演習1のデータを,表記と型を統一した状態に整えたものである(外れ値と欠損値はそのまま残っている).これを使って代表値と外れ値・欠損値の扱いを確認する.


プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する

プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する

操作手順

  1. WEBブラウザで,Microsoft 365 Copilot Chat(https://m365.cloud.microsoft/chat?auth=2)を開く.サインインが求められた場合は大学のIDとパスワードでサインインする.左のメニューで「新しいチャット」をクリック.
  2. 下の「演習2データ」全体コピーする.入力欄をクリックし,コピーしていたデータを貼り付ける.
  3. 貼り付けたデータの下に,下の「プロンプトA」の文章をそのままコピーして貼り付ける.
  4. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力A)が表示されるまで待つ.特に,生成されたグラフの形式と見た目を確認する.
  5. 出力Aの内容(グラフの形式・見た目の特徴)を,確認する.
  6. 左のメニューで「新しいチャット」をクリックし,新しいチャットを開始する(出力Aの内容がプロンプトBの回答に影響しないようにするため).
  7. 同じ「演習2データ」全体コピーして,チャットの入力欄に再度貼り付ける.
  8. 貼り付けたデータの下に,下の「プロンプトB」の文章全体コピーして,チャットの入力欄に再度貼り付ける.
  9. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力B)が表示されるまで待つ.
  10. 出力Aと出力Bを見比べながら,下の「ヒント」と「考察ポイント」を確認する.
演習2データ(たこ焼き店・売上記録)
日付,商品,個数,単価
2026-10-12,たこ焼き,15,300
2026-10-12,たこ焼き,10,300
2026-10-13,たこ焼き,,300
2026-10-13,たこ焼き,9999,300
2026-10-14,たこ焼き,22,300
2026-10-14,たこ焼き,18,300
2026-10-15,たこ焼き,,300
2026-10-15,たこ焼き,25,300
2026-10-16,たこ焼き,20,300
2026-10-16,たこ焼き,19,300
2026-10-17,たこ焼き,17,300
2026-10-17,たこ焼き,14,300
2026-10-18,たこ焼き,,300
2026-10-18,たこ焼き,21,300
2026-10-19,たこ焼き,9999,300
2026-10-19,たこ焼き,16,300
2026-10-20,たこ焼き,,300
2026-10-20,たこ焼き,23,300
2026-10-21,たこ焼き,12,300
2026-10-21,たこ焼き,20,300
2026-10-22,たこ焼き,18,300
2026-10-22,たこ焼き,15,300
2026-10-23,たこ焼き,,300
2026-10-23,たこ焼き,24,300
2026-10-24,たこ焼き,11,300
2026-10-24,たこ焼き,19,300
2026-10-25,たこ焼き,22,300
2026-10-25,たこ焼き,,300
2026-10-26,たこ焼き,26,300
2026-10-26,たこ焼き,17,300
プロンプトA(素朴な指示)
「演習2データ」の売上傾向をグラフにしてください。
プロンプトB(手法を指定した指示)
「演習2データ」を以下の手順で処理してください。

1. 個数列について、平均値・中央値を算出してください。
2. IQR法(四分位範囲)を用いて外れ値を検出し、除外した場合と除外しない場合の平均をそれぞれ示してください。
3. 欠損値がある行を列挙し、件数と割合を報告してください。統計量の算出では欠損行は除外してください。
4. 外れ値を除外、欠損値を除外した上で、日付ごとの個数の推移を折れ線グラフで可視化してください。
ヒント
  • 平均値・中央値の数値を確認するときは,講義で説明した定義(平均値=総和÷件数,中央値=昇順に並べた中央の値)に照らして見る.
  • 外れ値の除去による平均の変化を確認する.
  • プロンプトの中で,欠損値について,「欠損値を含む行を除外」という指示を行っていることを確認する.
考察ポイント
  • プロンプトAのグラフで,外れ値(9999個)を含んだままグラフ化されている場合,他の日の値がどのように小さく見えてしまうかを観察する.
  • プロンプトBで示された「外れ値を含む場合」と「除外した場合」の平均の差を確認し,講義で説明された「平均値は外れ値の影響を受けやすい」という説明があったことを確認する.
  • AIの結果が間違っている場合がある.人間の確認は必要である.繰り返し実行したり,他のAIで確認することも考える.

演習3. データエンジニアリングの実践

演習2のデータのうち,IQR法で外れ値と判定された9999は欠損値に置き換え済みである.この「たこ焼き店データ」(1日に複数件の取引を含む)に新しく「ジュース店データ」を加え,分析を行う.


プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する


プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する

操作手順

  1. WEBブラウザで,Microsoft 365 Copilot Chat(https://m365.cloud.microsoft/chat?auth=2)を開く.サインインが求められた場合は大学のIDとパスワードでサインインする.左のメニューで「新しいチャット」をクリック.
  2. 下の「演習3データ(たこ焼き店)」全体コピーする.入力欄をクリックし,コピーしていたデータを貼り付ける.
  3. 続けて「演習3データ(ジュース店)」全体コピーして,入力欄に貼り付ける.
  4. 貼り付けたデータの下に,下の「プロンプトA」の文章をそのままコピーして貼り付ける.
  5. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力A)が表示されるまで待つ.特に,結合後の売上の数値と,その内訳を確認する.
  6. 出力Aの内容を,確認する.
  7. 左のメニューで「新しいチャット」をクリックし,新しいチャットを開始する(出力Aの内容がプロンプトBの回答に影響しないようにするため).
  8. 同じ「演習3データ(たこ焼き店)」全体コピーして,チャットの入力欄に再度貼り付ける.
  9. 続けて「演習3データ(ジュース店)」全体コピーして,チャットの入力欄に再度貼り付ける.
  10. 貼り付けたデータの下に,下の「プロンプトB」の文章全体コピーして,チャットの入力欄に再度貼り付ける.
  11. 入力欄の右にある送信ボタンをクリックし,Copilotの回答(出力B)が表示されるまで待つ.
  12. 出力Aと出力Bを見比べながら,下の「ヒント」と「考察ポイント」を確認する.
演習3データ(たこ焼き店・売上記録)
日付,商品,個数,単価
2026-10-12,たこ焼き,15,300
2026-10-12,たこ焼き,10,300
2026-10-13,たこ焼き,,300
2026-10-13,たこ焼き,,300
2026-10-14,たこ焼き,22,300
2026-10-14,たこ焼き,18,300
2026-10-15,たこ焼き,,300
2026-10-15,たこ焼き,25,300
2026-10-16,たこ焼き,20,300
2026-10-16,たこ焼き,19,300
2026-10-17,たこ焼き,17,300
2026-10-17,たこ焼き,14,300
2026-10-18,たこ焼き,,300
2026-10-18,たこ焼き,21,300
2026-10-19,たこ焼き,,300
2026-10-19,たこ焼き,16,300
2026-10-20,たこ焼き,,300
2026-10-20,たこ焼き,23,300
2026-10-21,たこ焼き,12,300
2026-10-21,たこ焼き,20,300
2026-10-22,たこ焼き,18,300
2026-10-22,たこ焼き,15,300
2026-10-23,たこ焼き,,300
2026-10-23,たこ焼き,24,300
2026-10-24,たこ焼き,11,300
2026-10-24,たこ焼き,19,300
2026-10-25,たこ焼き,22,300
2026-10-25,たこ焼き,,300
2026-10-26,たこ焼き,26,300
2026-10-26,たこ焼き,17,300
演習3データ(ジュース店・売上記録)
日付,商品,個数,単価
2026-10-12,ジュース,30,150
2026-10-13,ジュース,12,150
2026-10-14,ジュース,40,150
2026-10-15,ジュース,35,150
2026-10-16,ジュース,28,150
2026-10-17,ジュース,33,150
2026-10-18,ジュース,25,150
2026-10-19,ジュース,38,150
2026-10-20,ジュース,29,150
2026-10-21,ジュース,31,150
2026-10-22,ジュース,27,150
2026-10-23,ジュース,36,150
2026-10-24,ジュース,24,150
2026-10-25,ジュース,32,150
2026-10-26,ジュース,30,150
プロンプトA(素朴な指示)
演習3データ(たこ焼き店・売上記録)と演習3データ(ジュース店・売上記録)の2店舗のデータをまとめて、全体の売上を分析してください。
プロンプトB(手法を指定した指示)
以下の手順で処理してください。

1. たこ焼き店データは1日に複数件の取引が記録されているため、まず日付ごとに個数の合計を集計してください。その際、個数が欠損している行は合計に含めず、1日の全行が欠損している日(例:2026-10-13)は「合計が算出できない日」として別途報告してください。その上で、2つの表を「日付」をキーとして結合(JOIN)し、日別の全店合計売上(個数×単価)を算出する統合テーブルを作成してください。
2. 作成した統合テーブルをもとに、店舗別・日別の売上構成比を積み上げ棒グラフで可視化してください(記述的分析)。
3. 今のデータから来年の文化祭の売上傾向を予測してください。
ヒント
  • 講義で説明した「キー列(複数の表を対応づける基準となる列)」の考え方を踏まえ,プロンプトBの手順1で「日付」がキー列として使われて,2店舗(たこ焼き,ジュース)のデータが結合されているか確認する.
  • たこ焼き店データは1日に複数行(明細)が記録されているため,日付ごとにまず合計してから結合する必要がある.
  • 「合計が算出できない日」は,講義で説明した「欠損値の確認と除外」の考え方に基づいていることを確認する.
考察ポイント
  • プロンプトBの出力にある積み上げ棒グラフで,過去のデータが集計され,わかりやすく表示されていることを確認する.
  • AI の予測能力と限界を,AIの回答から考察する.
  • AIの結果が間違っている場合がある.人間の確認は必要である.繰り返し実行したり,他のAIで確認することも考える.

第14回. 対話型AI

対話型AIは,大量の文章データから学んだ「言葉のつながり」をもとに,次に来るトークンを一つずつ確率的に予測して文章を生成している. 文章の「流暢さ」と内容の「正しさ」は別の軸であり,流暢でありながら誤った内容を確信的な口調で述べるハルシネーションが起こり得る. プロンプトの工夫やWeb検索・外部情報の参照(グラウンディング),コード生成・実行により回答は改善する場合があるが,正しさは保証されない. AIはたたき台の作成や作業の自動化に用いる.個人情報や機密情報の入力は避け,最終確認は必ず人間が行う.

スライド資料

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

[演習の詳細を表示するには,この行をクリックしてください]

演習1. Copilot で対話と生成のしくみを体験する

Microsoft 365 Copilot Chat を用いて,同じ質問でも回答が毎回同じではないこと(生成の仕組み),前の回答を受けて会話が続くこと(対話としての定義),指示を具体的にすると回答が整うこと(プロンプト)を確認する演習である.

Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

操作手順

  1. URLにアクセスする.

    Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

  2. サインインを求められた場合は,大学のIDとパスワードでサインインする.
  3. 画面左のメニューにある「新しいチャット」をクリックする.
  4. 入力欄に「AIについて教えて」と入力し,送信ボタンをクリックして回答を待つ.話題が広いことを確認する.
  5. 同じ入力欄に続けて「今の説明を,初心者向けに3つのポイントで,各ポイント2文以内にして.」と入力し,送信ボタンをクリックして回答を待つ.
  6. 手順4の回答と手順5の回答を見比べる.
  7. 再度画面左のメニューにある「新しいチャット」をクリックし,入力欄に「AIについて教えて」と同じプロンプトを入力して送信ボタンをクリックする.これは同じプロンプトでも回答が変動することを確認するため
  8. 再度画面左のメニューにある「新しいチャット」をクリックし,入力欄に「AIについて教えて」と同じプロンプト入力して送信ボタンをクリックする.(これにより手順4を含めて合計3回分の回答が得られる)
  9. 3回分の回答の内容や表現を見比べる.

ヒント

考察ポイント

演習2. Copilot と協働して告知文を段階的に改善する

Microsoft 365 Copilot Chat を用いて,修正指示を重ねて文章を改善すること(反復的対話),後の指示が前のやり取りを踏まえること,最初に与えた文章を後から参照できること(コンテキスト)を確認する演習である.

Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

使用する告知文(そのままコピーして使う)

情報工学科の学生の皆さんへお知らせいたします。来る11月15日水曜日の午後3時より、第2実験棟の3階にあります大会議室におきまして、卒業研究の中間発表会を開催する予定となっておりますので、対象となる4年生の皆さんは、発表資料を当日までに各自で準備の上、時間に遅れることのないようにご参加くださいますよう、よろしくお願い申し上げます。

操作手順

  1. URLにアクセスする.

    Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

  2. サインインを求められた場合は,大学のIDとパスワードでサインインする.
  3. 画面左のメニューにある「新しいチャット」をクリックする.
  4. 入力欄に「次の告知文を,意味を変えずに,より短く分かりやすく書き直してください.」と入力する.
  5. そして,上記の告知文をそのままコピーして貼り付ける.
  6. 送信ボタンをクリックして回答を待つ.回答が元の告知文より短くなっていることを確認する.
  7. 続けて入力欄に「3文以内にしてください.日時・場所・対象・持ち物(発表資料)がすべて残るようにしてください.」と入力し,送信ボタンをクリックして回答を待つ.回答が3文以内になり,日時・場所・対象・持ち物の4つの情報が残っていることを確認する.
  8. 続けて入力欄に「先ほどの3文の条件は保ったまま,最後に『欠席する場合は指導教員にメールで連絡すること』という一文を加えてください.」と入力し,送信ボタンをクリックして回答を待つ.一文が加わり,かつ「3文以内」「4つの情報」の条件が保たれていることを確認する.
  9. 続けて入力欄に「最初に私が貼り付けた元の告知文を,そのまま全文もう一度表示してください.」と入力し,送信ボタンをクリックして回答を待つ.元の告知文がそのまま再現されることを確認する.

ヒント

考察ポイント

演習3. Copilot で表形式データを活用する

Microsoft 365 Copilot Chat が,テキスト以外の形式(表の入力とグラフ画像の出力)を扱えること(マルチモーダル)を確認し,集計結果を元データと照合すること(データ活用)を体験する演習である.

Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

使用するデータ(見出し行を含め,そのままコピーして使う)

タイトル,分類,発行年,ページ数
情報理論入門,教科書,2012,240
機械学習の基礎,教科書,2018,320
データベース設計,専門書,2015,280
アルゴリズム図鑑,一般書,2020,200
統計学の考え方,教科書,2016,260
ネットワーク概論,専門書,2011,300
やさしいPython,一般書,2021,180
セキュリティ入門,専門書,2019,220

操作手順

  1. URLにアクセスする.

    Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

  2. サインインを求められた場合は,大学のIDとパスワードでサインインする.
  3. 画面左のメニューにある「新しいチャット」をクリックする.
  4. 上記のデータ(見出し行を含む)全体をコピーする.入力欄をクリックし,貼り付ける.
  5. 貼り付けたデータの下に続けて「分類ごとの冊数を数えてください.」と入力し,送信ボタンをクリックして回答を待つ.
  6. 回答に示された分類ごとの冊数を,貼り付けたデータを自分でも数えて,一致するかを照合する.
  7. 続けて入力欄に「この分類ごとの冊数を,棒グラフの画像にしてください.」と入力し,送信ボタンをクリックして回答を待つ.
  8. 文字ではなくグラフの画像が返ることを確認し,その内容が手順6で確認した冊数と合っているかを確認する.

ヒント

考察ポイント

演習4. Copilot を知識ベースとして使い,誤りを見抜く

Microsoft 365 Copilot Chat において,もっともらしい誤答(ハルシネーション)が実際に起こることを体験し,出典による検証で誤りに気づけること,正しい主題では出典がWeb検索で補われること(グラウンディング)を確認する演習である.

Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

操作手順

  1. URLにアクセスする.

    Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

  2. サインインを求められた場合は,大学のIDとパスワードでサインインする.
  3. 画面左のメニューにある「新しいチャット」をクリックする.
  4. 入力欄に「2026年7月に日本で流行しているYouTubeを教えて.」と入力し,送信ボタンをクリックして回答を待つ.(これは実在しない用語である)
  5. 実在しないにもかかわらず,AIがもっともらしい説明を作る場合があるので注意する.
  6. 続けて入力欄に「その説明の出典(参照元)のリンクを示してください.そして,今のあなたの回答が100%正確であるか確認してください.」と入力し,送信ボタンをクリックして回答を待つ.回答を確認する.示された「出典(参照元)」を,右クリックなどを利用して新しいタブで開いて確認する.
  7. 画面左のメニューにある「新しいチャット」をクリックする.
  8. 入力欄に「2026年7月の日本の主なニュースを教えてください.参照元のリンクも示してください.」と入力し,送信ボタンをクリックして回答を待つ.
  9. 手順8の回答に示された「出典(参照元)」を,右クリックなどを利用して新しいタブで開いて確認する.回答の内容がそのページの記載と合っているかを自分で確認する.また,ニュース自体が特定の分野に偏っていないかも確認する.

ヒント

考察ポイント

第15回. Microsoft Copilot を用いた生成 AI 演習

対話型AIは,学習した「ことば」のつながりの確率に基づいて次のことばを予測し,その予測を繰り返すことで文章を組み立て,応答を生成する.この処理において,AIが人間のようにことばの意味を理解しているわけではない.また,ことばをつなぐ過程に確率が介在するため,同じ入力に対して常に同じ出力が得られるとは限らない.生成AIは,テキストの生成にはこうした次の言葉の予測を用い,画像の生成には拡散モデルを用いる.いずれの場合も,生成AIが行っているのは,もっともらしいものを新たに一つ作り出すことである.たとえば,生成AIによって鮮明な画像が得られたとしても,それは元の画像を復元したのではなく,もっともらしい画像を作り出しているにすぎない.

スライド資料

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

[演習の詳細を表示するには,この行をクリックしてください]

使用するツール(全演習共通)

すべての演習で Microsoft 365 Copilot Chat を使用する.大学から付与されたアカウントでサインインして利用する.画像の生成は,チャットの入力欄にプロンプトを入力して指示する.各演習は,画面左のメニューにある「新しいチャット」をクリックしてから始める.

Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

演習1. 生成AIの応用分野を Copilot に語らせ,聞き方で回答がどう変わるかを見る

この演習では,生成AIがどのような分野で使われているかを Copilot に列挙させ,質問の仕方を少しずつ変えることで回答がどのように変化するかを観察する.

操作手順

  1. URLにアクセスする.

    Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2

  2. サインインを求められた場合は,大学のIDとパスワードでサインインする.
  3. 画面左のメニューにある「新しいチャット」をクリックする.
  4. 入力欄に「生成AIが実際に使われている分野を10個挙げて,それぞれ1行で説明して」と入力し,送信ボタンをクリックして回答を待つ.
  5. 表示された分野を確認する.
  6. 再度画面左のメニューにある「新しいチャット」をクリックし,入力欄に「生成AIが実際に使われている分野を10個挙げて,それぞれ1行で説明して」同じプロンプトを入力して送信ボタンをクリックする.
  7. 手順4の回答と手順6の回答を見比べる.内容の大枠は同じでも,細部は異なっている.
  8. 同じ入力欄に続けて「今の10個を,分野名/入力するもの/出力されるもの/使う人 の4列の表にして」と入力し,送信ボタンをクリックして回答を待つ.
  9. 同じ入力欄に続けて「この中で,大学の授業に関係が深いものを3つ選んで,学生の立場での使い道をそれぞれ2行で書いて」と入力し,送信ボタンをクリックして回答を待つ.
  10. 同じ入力欄に続けて「あなたは製造業の工場で働く技術者です.同じ質問に,その立場で答え直してください」と入力し,送信ボタンをクリックする.手順9までの回答と,どこが変わったかを確認する.
  11. 同じ入力欄に続けて「今の回答で,あなたが自信のない部分はどこですか.理由も書いてください」と入力し,送信ボタンをクリックして回答を確認する.

ヒント

考察ポイント

演習2. 画像を作らせ,指示の出し方を変えて画質を改善する

Copilot の制限により,1日に生成可能な画像の枚数は5枚程度である.

この演習では,Copilot に画像を作らせたうえで,改善の指示を段階的に具体化し,出力がどのように変わるかを観察する.あわせて,画質改善の技術についても Copilot に説明させる.

操作手順

  1. 画面左のメニューにある「新しいチャット」をクリックする.
  2. 入力欄に「机の上に置かれたノートパソコンとコーヒーカップの画像を作ってください」と入力し,送信ボタンをクリックして画像が表示されるまで待つ.
  3. 表示された画像を1枚目として確認する.
  4. 続けて「同じ構図のまま,次の条件で作り直してください.窓からの自然光を主な光源にする.手前のコーヒーカップにピントを合わせ,背景を少しぼかす.机の木目とパソコンの金属の質感が分かるようにする.色は落ち着いた色調にする」と入力し,送信ボタンをクリックする.表示された画像を2枚目とする.
  5. 1枚目,2枚目を並べて見比べ,どの指示によってどこが変わったかを確認する.

ヒント

考察ポイント

演習3. 身近な問題を題材に,条件を足しながら解決案を作らせる

この演習では,あらかじめ指定された身近な課題を題材とし,Copilot に解決案を出させる.条件を追加していくと案がどのように変わるかを観察する.題材は次のとおり固定する.

題材:大学の学食は昼休みに混雑し,行列で20分待つことがある.

操作手順

  1. 画面左のメニューにある「新しいチャット」をクリックする.
  2. 入力欄に「大学の学食は昼休みに混雑し,行列で20分待つことがあります.生成AIを使ってこの問題を解決する案を3つ出してください.それぞれについて,何を入力して何が出力されるか,誰が使うかを書いてください」と入力し,送信ボタンをクリックして回答を待つ.
  3. 表示された3案を確認する.
  4. 同じ入力欄に続けて「3つの案を,実現のしやすさ,費用,効果の3つの観点で5段階評価し,表にしてください」と入力し,送信ボタンをクリックして回答を待つ.
  5. 同じ入力欄に続けて「条件を追加します.予算はゼロ,作業できるのは学生3人,期間は2週間です.この条件で実現できる案を,あらためて3つ出してください」と入力し,送信ボタンをクリックする.手順2の3案と,どこがどう変わったかを確認する.
  6. 同じ入力欄に続けて「その中で最も現実的な案を1つ選び,うまくいかない可能性や注意すべき点を5つ挙げてください」と入力し,送信ボタンをクリックして回答を待つ.
  7. 同じ入力欄に続けて「その案は個人情報を扱う必要がありますか.扱わずに済ませる方法があれば教えてください」と入力し,送信ボタンをクリックして回答を待つ.
  8. 同じ入力欄に続けて「これまでの検討を,大学の事務室に提出する提案書の形にまとめてください.500字程度,である調,絵文字と感嘆符は使わないでください」と入力し,送信ボタンをクリックして出力を確認する.

ヒント

考察ポイント


授業計画(クリックにより中身が表示される)

詳しくは「シラバス」を参照する.

最新技術の反映,パソコン教室のパソコンを用いた演習の充実などにより,一部内容が変更になる場合がある.

  1. データサイエンス・AIでできること,社会の変化
    • 人工知能社会の到来
    • 社会で活用されているデータサイエンス・AI
    • データサイエンス・AI活用の現場と最新動向
    • 産業・社会・生活での変化
    • データの活用(オープンデータ,政府統計データなど)
  2. データサイエンス・AIの事例,技術
    • データサイエンス・AIの活用領域
    • データサイエンス・AI利活用のための技術
    • データの説明手法(散布図,分布,密度など)
    • AIによる分類・特徴抽出・予測
    • データサイエンス・AIの歴史と応用分野,最新技術
  3. 実データによるデータサイエンス・AIの演習
    • 政府統計データ,オープンデータの活用
    • データ分析手法(クロス集計,相関,平均,誤差)
    • データ・AI利活用における留意事項(プライバシー,個人情報,倫理,情報漏えいの防止など)
  4. 機械学習の基礎とニューラルネットワーク
    • 機械学習の基礎と展望
    • データからの学習のメカニズム
    • 最適化アルゴリズムの基本概念
  5. ニューラルネットワークの基本構造と画像分類
    • ニューラルネットワークの基本構造
    • ニューラルネットワークの学習方法
    • 学習メカニズム
    • 画像分類システムの基本構造
    • パターン抽出,特徴抽出
    • ディープラーニングへの接続
  6. ニューラルネットワークシステムの構築と運用
    • 学習の検証と評価(学習不足,過学習,学習曲線)
    • システムの運用方法
    • AI活用の企画・実施・評価の全体像
  7. さまざまな機械学習 ー 機械学習の広がりを学ぶ
    • 教師なし学習
    • 強化学習,自己学習
    • ディープラーニングの特色,応用分野
    • 系列データ分析
  8. AIとコンピュータビジョン
    • コンピュータビジョン
    • AIによる画像の認識・理解,基礎技術
    • 画像理解の3種類:画像分類,物体検出,セグメンテーション
    • 顔情報処理,顔ランドマーク
  9. 知識表現と推論
    • 推論エンジンの仕組み
    • 述語論理の基礎
    • AIとデータの組み合わせによる知識創造,知識活用
  10. データ構造とアルゴリズムの基礎
    • データ構造(パス,木)の基本概念
    • アルゴリズムの基礎
    • 探索アルゴリズムの基礎と応用
    • 知的なシステム
    • 発見的探索の手法
  11. プログラミング基礎と探索アルゴリズム
    • プログラミング基礎の習得
    • プログラミングによる知的なゲームプレイヤーの実現
    • 探索アルゴリズムの実現
    • 日常生活の課題解決のためのプログラミング
  12. 自然言語処理
    • 形態素解析
    • 日本語文書の類似度分析と感情度分析
    • テキストマイニング(文書からの有用な情報の抽出)
  13. コンピュータでのデータ表現とデータエンジニアリング
    • ビッグデータの特徴と活用方法
    • コンピュータでのデータ表現の基礎と具体的方法
    • データ処理技術(Excel関数,インポート)
    • データエンジニアリングの実践
  14. 対話型AI
    • 対話型AIの概要
    • 対話型AIとの協働と問題解決
    • 対話型AIのベストプラクティス,注意点
    • データの説明,データの分析,データの処理での活用
    • 知識ベースとしての活用
  15. 生成AIの基礎と展望
    • AIとデータの共創
    • 生成AIの応用分野
    • 画質改善
    • 具体的領域での生成AIによる問題解決
    • 文章からの音声・画像・動画表現生成

人工知能をいつでも学べるプラットフォーム開始

https://platform.aistudio.jp/

株式会社dott社との協働によるものである.現在は,5回分の授業の資料を見やすい形に整形して公開している.