「人工知能」サポートページ
授業担当教員:金子邦彦(情報工学科), サポートページ: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], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
以下の演習では,説明部分で学んだAIの概念を,オンラインデモを通じて体験する.各デモの結果を観察し,考察する.
演習1から7まで挑戦する.ブラウザの種類・バージョンによっては動作しない場合があり,その場合は当該の演習を飛ばして次に進む.
説明していない用語(例:隠れ層)が出てくる場合があるが,今回は体験を目的としており,用語は今後の授業で説明する.演習8から11は,Webカメラや画像ファイルを準備できる場合に取り組む.
説明の「ニューラルネットワークの基本構造」に対応する演習である.畳み込みニューラルネットワーク(CNN)の内部構造を3Dで可視化し,各層がどのように入力を処理しているかを観察する. URL: https://adamharley.com/nn_vis/cnn/3d.html 操作手順 観察と考察 説明の「ニューラルネットワークの基本構造」に対応する演習である.ニューラルネットワークの構造やパラメータを変更しながら,学習過程の変化を観察する. URL: https://playground.tensorflow.org 操作手順 観察と考察 説明の「探索による問題解決」に対応する演習である.探索アルゴリズムが経路を見つける過程を可視化し,コンピュータによる探索の仕組みを理解する. URL: https://qiao.github.io/PathFinding.js/visual/ 操作手順 観察と考察 説明の「自動翻訳サービス」に対応する演習である.AIによる自動翻訳の精度と自然さを体験する. URL: https://www.deepl.com/ja/translator 操作手順 観察と考察 説明の「人間の下書きをAIが清書する」に対応する演習である.手描きの下書きをAIが認識し,候補イラストを提示する仕組みを体験する. URL: https://www.autodraw.com/ 操作手順 観察と考察 説明の「AIでスケッチを増やす」に対応する演習である.VAEにより,描いたスケッチに似たスケッチを複数生成する技術を体験する. URL: https://magenta.tensorflow.org/assets/sketch_rnn_demo/multi_vae.html 操作手順 観察と考察 説明の「手書きの線画から画像を生成する」に対応する演習である.pix2pix(GAN技術)を使用して,手書きの線画からカラー画像を生成する技術を体験する. URL: https://mitmedialab.github.io/GAN-play/ 操作手順 観察と考察 演習8〜11はWebカメラまたは画像ファイルが必要である(演習ごとに異なる).教室PCにはウェブカメラが搭載されていないため,個人PCでウェブカメラを搭載している場合に試すことができる.画像ファイルを使用する場合は,あらかじめ画像を準備しておく. 説明の「訓練データと学習の仕組み」に対応する演習である.自分のデータで訓練データの作成,学習,推論の一連の流れを体験する. Webカメラあるいは画像ファイルの準備が必要である.個人PCでウェブカメラを搭載している場合に試すことができる.教室PCにはウェブカメラがない. URL: https://teachablemachine.withgoogle.com/ 操作手順 観察と考察 説明の「画像分類」に対応する演習である.画像をアップロードし,AIによるラベル付けや物体検出を体験する. URL: https://cloud.google.com/vision/docs/drag-and-drop 操作手順 観察と考察 説明の「顔検知」「顔のキーポイント検出」「表情の自動判定」に対応する演習である.1つのデモで顔に関する複数のAI技術を体験する. URL: https://modern-face-api.vercel.app/ (画像アップロード.個人PCでウェブカメラ搭載の場合のみ試すことができる.教室PCにはウェブカメラがない) 操作手順 観察と考察 説明の「人体の姿勢の読み取り」に対応する演習である.人体の関節位置を検出し,骨格を可視化する技術を体験する. URL: https://huggingface.co/spaces/hysts/mediapipe-pose-estimation 操作手順 観察と考察
[動画],
[YouTube動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習について
演習1. CNN 3D Visualization(Adam Harley)(機械学習・ニューラルネットワーク)
演習2. TensorFlow Playground(機械学習・ニューラルネットワーク)
演習3. PathFinding.js Visual(知的なITシステム)
演習4. DeepL(AIでできること)
演習5. AutoDraw(Google)(AIによる合成)
演習6. Sketch RNN VAE Demo(Magenta)(AIによる合成)
演習7. GAN-play(MIT Media Lab)(AIによる合成)
演習8. Teachable Machine(Google)(機械学習・ニューラルネットワーク)
演習9. Google Cloud Vision API Demo(AIでできること)
演習10. Modern Face API Demo(AIでできること)
演習11. MediaPipe Pose Estimation(Hugging Face)(AIでできること)
第2回. データサイエンス・AI の事例,技術
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
データサイエンスは,データから有益な情報を導き出すための学問である.散布図やヒストグラムなどでデータを可視化する. 機械学習は,コンピュータがデータを使用して学習し知的能力を向上させる技術で,パターンや関係性を自動で発見する. 機械学習には,正解の組を用いる教師あり学習のほか教師なし学習や強化学習があり,代表的手法にディープラーニングがある. いずれもデータに基づく技術である.結果に100%の正確性は保証されず,データの選択・前処理に注意が必要である.
動画
以下の演習では,説明部分で学んだデータサイエンス,機械学習の概念をについて理解を深める.
ペンギン3種類のデータを使い,Excelの関数で合計と平均を求める演習である.種類ごとの平均を比較することで,種類による体の特徴の違いを数値で把握する. 使用データ:penguins.xls 操作手順
H2に「くちばしの長さ(mm)」,I2に「くちばしの深さ(mm)」,J2に「フリッパーの長さ(mm)」,K2に「体重(g)」の平均が求まっていることを確認する.
I3,J3,K3も同様に行う.I3に「=AVERAGE(C153:C275)」,J3に「=AVERAGE(D153:D275)」,K3に「=AVERAGE(D153:D275)」と入力する
I4,J4,K4も同様に行う.
I4に「=AVERAGE(C276:C343)」,J4に「=AVERAGE(D276:D343)」,K4に「=AVERAGE(E276:E343)」と入力する
左から順に,「くちばしの長さ(mm)」,「くちばしの深さ(mm)」,「フリッパーの長さ(mm)」,「体重(g)」の平均
観察と考察 ペンギン3種類のデータを使い,Excelで散布図を作成する演習である.2つの特徴量を横軸と縦軸にとり,種類ごとのデータの分布やかたまりを視覚的に確認する. 使用データ:penguins.xls(演習1と同じファイルをそのまま使用する) 操作手順
結果
参考(色分けして1枚にしたもの)
観察と考察 ペンギン3種類の体重データを使い,Excelでヒストグラムを作成する演習である.データの散らばり方(分布)を可視化し,平均だけでは分からない特徴を読み取る. 使用データ:penguins.xls(演習1,2と同じファイルをそのまま使用する) 操作手順 観察と考察 演習1〜3と同じペンギンのデータを使い,機械学習(教師あり学習)でペンギンの種類を自動分類する様子を観察する演習である.演習2の散布図で人間が目で確認した「種類ごとのかたまり」を,コンピュータが自動で分類する仕組みを体験する. 使用データ:penguins.xls(演習1〜3と同じファイル) 実行の流れ 左が実データ.右が機械学習による予測(3種を予測)
観察と考察
[演習で用いたパーマーペンギンデータの準備手順]
演習のパーマーペンギンデータの準備手順を説明しているものであり,各自の演習として取り組む必要はない
[動画], [YouTube動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習について
演習1. 平均(Excel)
演習2. 散布図(Excel)
演習3. ヒストグラム(Excel)
演習4. 機械学習によるペンギンの種類の自動分類(Google Colab)
https://raw.githubusercontent.com/allisonhorst/palmerpenguins/master/inst/extdata/penguins.csv
第3回. 実データによるデータサイエンス・AIの演習
オープンデータには,政府統計e-Stat,気象データ,GTFS形式の公共交通データ,AED設置場所,感染症動向データなどがある. 利用時は,データの品質や信頼性の確認,著作権の尊重,出典の明示,公開者が定める利用条件の遵守が必要である. クロス集計表は2つの変数の組み合わせごとに人数等を集計した表である.相関係数は2つの変数の関係の強さを表す数値である. 分析の前に散布図でデータの分布を確認し,サンプル数やデータの偏りの確認も必要である.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
以下の演習では,説明部分で学んだデータサイエンス・AIの概念を,オンラインデモを通じて体験,さらに,各自データをダウンロードしてExcelを用いて分析する.
演習1と演習2は,「自分が知らなかった事実」を1つでも見つけることが目的である.
演習3と演習4と演習5は,「自分でデータを取得し,自分で分析し,自分で考える」ことを行う.
いずれも,データ分析者としてスキルを磨くことになる.
質問は英語で与える必要がある.
翻訳サイトDeepL:
https://www.deepl.com/ja/translatorを必要に応じて活用してほしい
画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる. 手順A:ページ上の文字のない場所(余白)を右クリックする. 手順B:表示されたメニューから「日本語に翻訳」を選ぶ. 手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ. 注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい. 概要 Google Data Commonsは,世界各国の公的機関(日本の国勢調査,米国国勢調査局,世界銀行,WHO,CDC等)が公開する統計データを1か所に集めたオープンデータプラットフォームである.検索欄に英語で質問を入力すると,大規模言語モデル(LLM:Large Language Models,大量のテキストで学習した言語処理AI)が質問を解釈し,統計を地図やグラフで自動的に可視化(データをグラフや地図で見える形にすること)する. 操作手順 手順1:ブラウザで https://datacommons.org/ にアクセスする. 手順2:画面の上部中央の検索欄をクリックする. 手順3:以下のいずれかの質問例をコピーして検索欄に貼り付け,Enterキーを押す. それぞれの意味は,1つ目が「日本の人口推移」,2つ目が「日本とG7各国の平均寿命比較」,3つ目が「東京の失業率」である.トップページに表示される質問例(Sample questions)をクリックして試してもよい. 手順4:画面に折れ線グラフ・地図・ランキング表などが,データに応じて自動生成されることを確認する. 手順5:グラフ付近にある「About this data」をクリックすると,どの公的機関のオープンデータが使われているかを確認できる. 手順6:画面左上の「DC」のロゴをクリックしてトップページに戻り,別の質問で手順3から繰り返す.最低3つの質問を試す. 体験のポイント 「質問文」の意味をAIが理解し,適切なデータが選択されている.「Unemployment rate in Tokyo (東京の失業率)」のような質問では,このサイトがデータを取得できず結果が得られない.その場合は「Unemployment rate in Japan (日本の失業率)」のように変えて試す. 概要 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年分のデータで自分の目で確かめる. どのサイトの演習でも,相関係数の計算は以下の手順で行う. 手順E1:2列のデータをExcelに用意する(例:A列に指標1,B列に指標2).1行目は見出しとし,2行目以降にデータを置く. 手順E2:空きセルを選び, 手順E3:Enterキーを押すと,−1から1までの値が表示される.1に近ければ正の相関,−1に近ければ負の相関,0に近ければ相関がほぼないとみなす. 手順E4:2列のデータを選び,「挿入」→「散布図」で散布図を描き,点の並びを目で確かめる. 概要 気象庁が運営する,全国の観測地点の気温・降水量・日照時間等を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に近い値)を示すことが多い.余裕があれば,項目を「月降水量」に変えて同じ手順を繰り返し,気温ほど強い相関は出ないことを確かめる.この違いから「何が連動し,何が連動しないか」を自分の目で確かめる. 概要 総務省統計局が毎年刊行している,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あたり人口密度」の場合は,式は,次のようになる.
そして,前の演習3と同じ手順で,散布図を作成. 手順8:相関係数の値から判断を行う. 体験のポイント
各人の興味に応じて,複数の種類のデータをダウンロード(例:都道府県別の人口,都道府県別の医師数)し,コピー&ペーストにより,1つのExcel のシートの中に2つの異なるデータを並べ,相関係数を計算したり,散布図を作成.
量的に比例する指標は,強い正の相関(1に近い値)を示すことが多い.「比率どうし」(例:高齢化率と持ち家比率)を選ぶと,より興味深い発見が得られる.相関があるからといって因果関係があるとは限らない点に注意する. 概要 政府統計の総合窓口(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程度の場合,「相関があるとは言い切れない」と判断する慎重さが必要である.
[演習の詳細を表示するには,この行をクリックしてください]
演習について
翻訳サイト
Chromeブラウザの翻訳機能の使い方
演習1. 質問を理解するAI 「Data Commons」
How has the population of Japan changed over time?Life expectancy in Japan compared to other G7 countriesUnemployment rate in Tokyo演習2. データの隙間を埋めるAI 「Gapminder」
Excelで相関係数を求める手順
=CORREL(A2:A48, B2:B48) のように入力する.範囲は自分のデータ件数に合わせて変える.演習3. 過去の気象データ・ダウンロードと相関の分析
演習4. 総務省統計局「統計でみる都道府県のすがた」から相関の分析
=CORREL(L14:L60, V14:V60)
演習5. e-Stat「統計ダッシュボード」から相関の分析
第4回. 機械学習,ニューラルネットワーク
機械学習は,コンピュータがデータを使用して学習し知的能力を向上させる技術で,データからパターンや関係性を自動で発見する. 入力と正解の組(例:手書き数字画像と数字ラベル)を訓練データとして用いる方式を教師あり学習と呼び,他に教師なし学習や強化学習がある. ニューラルネットワークは脳のニューロンを模した構造で,入力の重みづけ,合計とバイアス,活性化関数の適用を経て順伝播する. その学習は予測と正解の誤差を小さくする最適化であり,バックプロパゲーションにより各層の重みとバイアスを更新する.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる. 手順A:ページ上の文字のない場所(余白)を右クリックする. 手順B:表示されたメニューから「日本語に翻訳」を選ぶ. 手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ. 注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい. Quick, Draw! は,Googleが公開する機械学習の体験サイトであり,登録不要で利用可能である.ユーザが描いた絵を,ニューラルネットワークがリアルタイムで分類する.本演習では,機械学習が持つ知的能力(分類,認識)を体験することを目的とする. Quick, Draw! のサイト:https://quickdraw.withgoogle.com/ 操作手順 Quick, Draw! のサイト:https://quickdraw.withgoogle.com/ ヒント 考察ポイント Neural Network Playground は,カリフォルニア大学サンディエゴ校(UCSD)のCCoMが公開するWebサイトであり,登録不要で利用可能である.ニューラルネットワークの最小構成を体験できる.ニューロンの数を1個から変化させながら,分類の境目の形状がどのように変化するかを観察できる.本演習では,「ニューラルネットワークは,ニューロンがネットワークを形成する」という仕組みを,最小構成で確認することを目的とする. Neural Network Playground:https://www.ccom.ucsd.edu/~cdeotte/programs/neuralnetwork.html 注意:本サイトは英語で表示される.操作要素はスライダーとボタンのみであり,英語が不得意でも操作に支障はない. 操作手順 Neural Network Playground:https://www.ccom.ucsd.edu/~cdeotte/programs/neuralnetwork.html ヒント 考察ポイント A Machine Learning Playground(Scienxlab版)は,ニューラルネットワークの学習過程を対話的に可視化するWebサイトであり,登録不要で利用可能である.ニューロンの数,活性化関数,学習の速さなどを変更して,学習をリアルタイムに実行できる.本演習では,「入力の重みづけ,合計とバイアス,活性化関数の適用」「ニューラルネットワークのパラメータ(重みやバイアス)を最適化する」という仕組みを総合的に体験する. A Machine Learning Playground:https://playground.scienxlab.org/ 本サイトは,Googleが公開する TensorFlow Playground(https://playground.tensorflow.org/)の拡張版である.UIと基本操作は原版と同一であり,活性化関数の種類と利用できるデータの追加などの拡張が施されている.他の教材や書籍で「TensorFlow Playground」という名称に出会った際は,同系統のツールである.原版も同じ操作方法で利用できる. 事前準備:演習2を先に体験しておくと理解しやすい. 注意:本サイトは英語で表示される.操作要素は主にボタンとドロップダウンメニューであり,英語が不得意でも直感的に操作できる. 操作手順 A Machine Learning Playground:https://playground.scienxlab.org/ ヒント 考察ポイント
スライド資料と演習手順の資料は,https://www.kkaneko.jp/mi/index.html で,各回の授業開始時刻までに掲載する.
セレッソのコースニュースで授業に関するお知らせを配信する.また,小テスト機能で課題を出すため,あわせて確認する.
本科目の資料は,以下の2種類で構成される.
[演習の詳細を表示するには,この行をクリックしてください]
Chromeブラウザの翻訳機能の使い方
演習1. Quick, Draw! の体験
カヌー)が表示される.「OK」をクリックして開始する.
演習2. Neural Network Playground の体験
H=9 と表示されたスライダーを確認する.H は,ネットワーク内部のニューロンの数を表す.H=1)まで動かす.ニューロンが1個のみとなり,分類の境目が直線1本になることを観察する.H=2,H=3,H=4 と増やしていく.分類の境目が,直線の組み合わせから複雑な形状に変化していく様子を観察する.H=9)まで動かす.赤と青の点の配置にもよるが,曲線的で複雑な分類の境目が形成されることを観察する.
H=1)と,多くした場合(H=9)とで,それぞれ,どのようなデータが正しく分類できるかを考察する.演習3. A Machine Learning Playground の体験
第5回. ニューラルネットワークの基本構造と画像分類
ニューラルネットワークは脳神経回路を模した構造であり,各ニューロンは入力への重みづけ,合計とバイアス,活性化関数の適用という3段階で処理を行う. 学習は誤差に基づき重みとバイアスを修正する反復処理であり,繰り返しごとに誤差が減少するように処理を行う. 活性化関数は非線形変換を担い,中間層ではReLUなどを利用し,最終層では出力を確率へ変換するソフトマックスを用いるなど,層の役割に応じて使い分ける. 中間層を複数備えたディープニューラルネットワークは複雑なパターンの学習を可能にする.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
画面が英語で読みにくい場合は,以下の手順でページ全体を日本語に翻訳できる. 手順A:ページ上の文字のない場所(余白)を右クリックする. 手順B:表示されたメニューから「日本語に翻訳」を選ぶ. 手順C:ページ全体が日本語に切り替わる.元の英語に戻したい場合は,アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし,「英語」を選ぶ. 注意:Googleの翻訳では,専門用語や固有名詞が不自然な日本語になる場合がある.意味が分かりにくい箇所は,元の英語表示に戻して確認するとよい. Neural Network Visualizer は,ニューラルネットワークの構造と学習過程をブラウザ上で視覚的に観察できる教材サイトであり,登録不要で利用できる.データセットの選択,ネットワーク構成の指定,訓練の実行,訓練中のニューロンの活性度の変化を確認できる. Neural Network Visualizer のサイト:https://www.nn-visual.com/ 操作手順 Neural Network Visualizer のサイト:https://www.nn-visual.com/ ヒント 考察ポイント ReLU は,ニューラルネットワークで用いられる活性化関数の一つである.負の入力を 0 に変換し,0 以上の入力はそのまま出力する関数である.本演習では,ReLU関数を実装したPythonプログラムを実行し,異なる入力値(負数,0,正数)に対する変換結果を確認することを目的とする.条件分岐( ソースコードのURL:https://trinket.io/python/61c6503fcada 操作手順 ソースコードのURL:https://trinket.io/python/61c6503fcada ヒント 考察ポイント 1つのニューロンに2つの入力 (x1, x2) を与え,重みとの掛け算,合計,バイアスの加算,活性化関数(ReLU)の適用という一連の計算を行う.本演習では,1つのニューロンの計算をPythonで実行し,4つの入力パターンに対する活性度を求める.重み,バイアス,活性化関数という3つの基本要素の役割と連携を理解する第一歩となる. ソースコードのURL:https://trinket.io/python/1c339b660ee1 操作手順 ソースコードのURL:https://trinket.io/python/1c339b660ee1 ヒント 考察ポイント 複数のニューロンを層として組み合わせると,1層の場合より複雑な判断ができる.本演習では,3つのニューロン(n1,n2,n3)から成るニューラルネットワークをPythonで実行し,4つの入力パターンに対する活性度を求める.複数のニューロンが層を形成することによる情報処理の基礎を体験する. ソースコードのURL:https://trinket.io/python/3cbc3f3ed057 操作手順 ソースコードのURL:https://trinket.io/python/3cbc3f3ed057 ヒント 考察ポイント TensorFlow のチュートリアル「基本的な画像分類」は,Fashion MNIST(衣料品・履物・バッグの計10クラスの28×28画素のグレースケール画像)を題材に,ニューラルネットワークによる画像分類の一連の流れをPythonコードで示している.本演習では,このチュートリアルのページをログインせずに閲覧し,説明文とソースコードを読み取って,画像分類の処理の流れを理解することを目的とする.コードの実行は行わない.コードに含まれる出力例(学習過程の表示,分類結果の図)も併せて確認する. チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification 操作手順 チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
Chromeブラウザの翻訳機能の使い方
演習1. Neural Network Visualizer による画像分類の学習体験
iris」のカードをクリックして選択する.iris は,あやめの花びら,がく片の幅と高さを測定したデータである.
iris を選んだら,下の「Next: Configure Network」をクリックして次に進む.
演習2. ReLU(Pythonで実現)
if と else)によるプログラミングも体験する.
x = -2, -1, 0, 1, 2 のそれぞれに対する relu(x) の値が順に表示されることを確認する.
if x < 0: と else: が条件分岐を表す.x が 0 未満の場合は 0 を返し,そうでない場合は x をそのまま返す.
relu(x) が 0 となることを,if x < 0: と else:の部分を見て,再度確認する.演習3. 入力の重みづけ,合計とバイアス,活性化関数の適用
n(x1, x2) の中の s = 1 * x1 + 1 * x2 - 0.5 が,重みとの掛け算・合計・バイアスの加算をまとめて行う式である.重みは2つとも 1,バイアスは -0.5 に設定されている.return relu(s) によって,合計結果 s に活性化関数 ReLU を適用している.
演習4. ニューラルネットワーク
n1 と n2 は,入力 (x1, x2) を直接受け取るニューロンである.n1 は重み (1, 1)・バイアス 0,n2 は重み (1, 1)・バイアス -1 を持つ.n3 は,n1 と n2 の出力を入力として受け取るニューロンである.n3 は重み (-1, 2)・バイアス 1 を持つ.これにより,n1・n2 と n3 の2層構造となる.n(x1, x2) は n3(n1(x1, x2), n2(x1, x2)) を返す.これは n1 と n2 の出力をまとめて n3 に渡していることを示す.
n1 と n2 の出力(n3 に渡される中間値)が,それぞれの入力に対してどのような値になっているかを考察する.余裕があれば,n1 と n2 の出力を表示する print 文をコードに追加し,再度実行して確認する.演習5. Fashion MNIST 画像分類のコード読解
fashion_mnist.load_data() によって訓練データ60,000枚とテストデータ10,000枚が読み込まれることを,説明文とコードから読み取る.10クラスのラベル(T-shirt/top,Trouser,Pullover,Dress,Coat,Sandal,Shirt,Sneaker,Bag,Ankle boot)の対応表を確認する.train_images = train_images / 255.0 によって 0〜1 の範囲に変換していることを確認する.tf.keras.Sequential によるモデルの定義を読み取る.コードは Flatten(28×28画素を784の1次元配列に変換)→ Dense(128, activation='relu')(中間層 128 ニューロン,活性化関数 ReLU)→ Dense(10)(出力層 10 ニューロン)の順となっている.重みづけ・合計・バイアスの加算・ReLU の適用が,各層で行われていることを確認できる.model.fit(train_images, train_labels, epochs=10) による学習の出力例を確認する.訓練の繰り返し(Epoch 1/10 から Epoch 10/10)ごとに,損失(loss)が減少し,正解率(accuracy)が上昇する様子をページ内の出力例から読み取る.predictions[0] の出力(10個の数値)を見て,最も大きい値に対応するクラスが分類結果となることを np.argmax の説明から読み取る.
activation='relu' は,演習2で扱った ReLU 関数を活性化関数として用いることを示す.Dense(128) や Dense(10) の数値(128,10)は,それぞれ中間層と出力層のニューロン数である.出力層のニューロン数 10 は,分類するクラス数(10種類)と一致する.epochs=10 は,同じ訓練データを繰り返し用いて学習を行う回数を示す.
Epoch が進むにつれて損失が減少し,正解率が上昇する様子を読み取り,「学習は一度で正解にたどり着くのではなく,徐々に近づける」という仕組みを,具体的な数値の変化として確認する.Flatten → Dense(128, relu) )について.784個の入力に対する重みづけ・合計・バイアスの加算・ReLU の適用が,128ニューロン分して行われていることを考察する.
第6回. 学習と検証,学習不足,過学習,学習曲線
ニューラルネットワークの学習は,誤差算出・パラメータ更新を反復し,予測と正解の誤差を最小化する. 学習の目的は未知のデータにも対応する「汎化」であり,検証データを用いてその性能を評価する. 訓練データにのみ適合する過学習を防ぐため,データの増量や多様性向上,ネットワークの簡素化等を行う. 学習曲線の推移から訓練と検証の誤差が開き始める時点を過学習のサインと捉え,最適な学習状態を見極める.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
本演習は,Google Colab上にプログラムと実行結果がすでに公開されている.利用者はそれを閲覧して観察するものであり,プログラムを自分で実行したり書き換えたりする必要はない. 観察対象は,同じ訓練データを用いた学習を20回繰り返し,学習の繰り返しごとに,訓練データと検証データに対する精度や誤差を算出した結果である.学習終了後の出力として,4つの画像(例:2,0,4,8)の分類結果(各カテゴリ0〜9の確率である10個の数値),学習終了時の結合の重み,および学習曲線(誤差の推移グラフ)が掲載されている. プログラムの公開URL:https://colab.research.google.com/drive/1IfArIvhh-FsvJIE9YTNO8T44Qhpi0rIJ?usp=sharing 手順 ヒント 考察ポイント 本演習も,Google Colab上にプログラムと実行結果がすでに公開されている.利用者はそれを閲覧して観察するものであり,プログラムを自分で実行したり書き換えたりする必要はない. 観察対象は,中間層のニューロン数のみが異なる3種類のモデル(400,4000,40000)について,20回の学習の繰り返しののち,検証データでの分類の正解率(分類精度)を計測した結果である.3つの結果を見比べることで,ニューロン数のちがいによる影響を観察する. プログラムの公開URL:https://colab.research.google.com/drive/1-UWl-WEPmmNo-S_O17E5XPkF4tphE6xz?usp=sharing 手順 400のモデルについては次の部分.学習では乱数が使われているので,実際に表示される値は次のとおりにはならずわずかに変動する. 400のモデルについては次の部分.学習では乱数が使われているので,実際に表示される値は次のとおりにはならずわずかに変動する. ヒント 考察ポイント 本演習は,TensorFlow公式チュートリアルの「オーバーフィットとアンダーフィット」のページを閲覧して観察するものである.ページ上には説明文と複数の学習曲線のグラフが掲載されており,利用者はそれらを読み,グラフを観察する.自分でプログラムを実行する必要はない. 手順 ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. 学習曲線の観察
EPOCHS=20,訓練データの指定(x=ds_train[0],y=ds_train[1]),検証データの指定(validation_data=(ds_test[0], ds_test[1]))の3か所を確認する.
loss(訓練データの誤差),accuracy(訓練データの精度),val_loss(検証データの誤差),val_accuracy(検証データの精度)の4つの数値が表示されていることを観察する.
m.get_weights()[2])に掲載されている出力を見て,学習終了時の結合の重みが多数の数値として表示されていることを観察する.
loss(訓練データの誤差)とval_loss(検証データの誤差)の数値を見比べ,学習の繰り返しに伴ってどのように変化しているかを観察する.両方とも減少しているか,あるいは検証データの誤差だけ途中から増えていないかを確認する.演習2. ニューロン数の異なるニューラルネットの学習曲線の比較
400,2つ目のモデルが4000,3つ目のモデルが40000に設定されていることを観察する.
演習3. 学習曲線の例(TensorFlowチュートリアル)
第7回. さまざまな機械学習 ー 機械学習の広がりを学ぶ
前回までに教師あり学習と画像分類を学んだ.今回はそこから,学習の枠組みを広げる方向(教師なし学習,強化学習,自己学習)と,扱うデータを広げる方向(系列データへの適用)を学ぶ.教師なし学習は,ラベル(正解)の無いデータから,パターン・構造・隠れた関係性を見つける手法である.応用範囲には,クラスタリング,異常検知,推薦システム,次元削減・データ圧縮がある.強化学習は,行動の結果として得られる報酬・ペナルティを手がかりに,より良い行動方針を学習する手法である.自己学習はその考え方を応用した発展的な形であり,経験の出どころが,強化学習では外部の環境であるのに対し,自己学習では自分自身との対戦である.系列データを扱う手法は,RNNからLSTMへと発展した.言語・音声を中心に主流はTransformerへ移行した.対話AIは,Transformer を使用しており,入力文から次に来る語を確率で予測し,それを繰り返して応答を作る.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
クラスタリングは,似ているデータをクラスタに分ける手法である.本演習では,可視化サイト上でデータのまとまりに中心点(セントロイド)を置き,クラスタに分かれていく様子を観察する. 手順 ヒント 考察ポイント 本演習では,公開されているPythonプログラムを実行し,モール(商業施設)の顧客データに対してクラスタリングを行う.クラスタ数を1つずつ増やしながら,クラスタの分かれ方がどう変わるかを観察する.プログラムを自分で書き換える必要はない. 手順 ヒント 考察ポイント 系列データとは,順序付けられたデータの並びである.本演習では,毎日の太陽の黒点数という系列データを扱う.過去のデータをもとに将来を予測したプログラムと,その実行結果(実際のデータと予測結果)を閲覧して観察する.プログラムを自分で実行したり書き換えたりする必要はない. 手順 ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. クラスタリング学習サイトの活用
https://www.naftaliharris.com/blog/visualizing-k-means-clustering/
演習2. クラスタリングのPythonプログラムによる実行
https://trinket.io/python/93ab2fb15488
演習3. LSTM を用いた予測の例
https://colab.research.google.com/drive/1tLfijmXCJyg--4Jr5pbzV5G7p_3LILQD?usp=sharing
第8回. AIとコンピュータビジョン
デジタル画像は格子状の画素から成り,濃淡は0〜255,カラーはRGB各0〜255の数値で表現される. ディープラーニングは多層構造のニューラルネットワークを用いて,低次(エッジ・色),高次(物体)の特徴を抽出する. 畳み込みニューラルネットワーク(CNN)は畳み込み層・プーリング層・全結合層を組み合わせたニューラルネットワークで,画像の局所的特徴を効率的に捉えることができる.画像理解は,主な3種類として,分類・物体検出・セグメンテーションがある.これらは,顔処理や自動運転等に応用される.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
CNN Explainer は,畳み込みニューラルネットワーク(CNN)の構造と各層の処理結果をブラウザ上で視覚的に観察できる教材サイトである.ジョージア工科大学 Polo Club が公開しており,登録不要で利用できる.画像分類を行うネットワークが,畳み込み層・プーリング層・全結合層から構成される様子を確認できる. CNN Explainer のサイト:https://poloclub.github.io/cnn-explainer/ 操作手順 CNN Explainer のサイト:https://poloclub.github.io/cnn-explainer/ ヒント 考察ポイント Animated AI は,ニューラルネットワークのアルゴリズムをアニメーションで解説する教材サイトである.登録不要で利用できる.トップに置かれた「The Basic Algorithm」では,畳み込みの仕組みをアニメーションで観察できる. Animated AI のサイト:https://animatedai.github.io/ 操作手順 Animated AI のサイト:https://animatedai.github.io/ ヒント 考察ポイント Google Colaboratory 上に用意されたページで,物体検出モデル YOLO のプログラム・説明・実行結果を確認する.YOLO は,物体の位置と種類を一括で予測する物体検出モデルである. Google Colaboratory のページ:https://colab.research.google.com/drive/18IPPkY96Oc6jkYD2su4cFgWcoYAskLo_?usp=sharing 操作手順 Google Colaboratory のページ:https://colab.research.google.com/drive/18IPPkY96Oc6jkYD2su4cFgWcoYAskLo_?usp=sharing ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. CNN Explainer による画像分類ネットワークの観察
演習2. Animated AI による畳み込みアルゴリズムの観察
演習3. YOLO による物体検出(Google Colaboratory)
第9回. 知識表現と推論
AIにおける知識表現では,知識を「事実」と「ルール」に整理し,推論により自動的に結論を導く.金融の自動審査や不正検知など,明確なルールに基づく判定と,その判断理由の説明が求められる業務に有用である.機械学習が大量データから見つけたルールを推論に適用することで,より高度で説明可能なAIシステムの構築が可能である.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
オンラインのProlog環境である SWISH を利用して,Prologの基本動作と推論エンジンによる自動判定を体験する 操作手順 ヒント 考察ポイント 家族関係を例にして,複数の事実とルールに基づく推論と,成り立たない場合の結果を確認する. 操作手順 ヒント 考察ポイント 同じ家族関係のプログラムを使い,変数を組み合わせた多様な問い合わせを行い,Prologがどのように答えを探索するかを観察する. 操作手順 ヒント 考察ポイント
スライド資料と演習手順の資料は,https://www.kkaneko.jp/cs/index.html で,各回の授業開始時刻までに掲載する.
セレッソのコースニュースで授業に関するお知らせを配信する.また,小テスト機能で課題を出すため,あわせて確認する.
本科目の資料は,以下の2種類で構成される.
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. Prolog による推論
SWISH のサイト:https://swish.swi-prolog.orghuman(hanako).
human(taro).
think(X) :- human(X).?-の右側)に human(X). と入力し,右下の「Run」ボタンをクリックする.さらに「Next」ボタンをクリックし,答えが増えなくなるまで結果(X = hanako, X = taro)を確認する.think(X). と入力して「Run」ボタンをクリックし,「Next」ボタンで答えが増えなくなるまで確認する(X = hanako, X = taro).think(taro). に書き換えて「Run」ボタンをクリックし,結果に true と表示されることを確認する.
.)をつける.
演習2. 家族関係の推論
male(ali).
female(zeyn).
female(anne).
parent(ali, anne).
parent(zeyn, anne).
child(Y, X) :- parent(X, Y).male(ali). と入力し「Run」ボタンをクリックして,結果が true になることを確認する.male(anne). と入力して「Run」ボタンをクリックし,結果が false になることを確認する.parent(ali, anne). に書き換えて「Run」ボタンをクリックし,結果が true になることを確認する.child(anne, ali). に書き換えて「Run」ボタンをクリックし,結果が true になることを確認する.
false は「偽」ではなく,「証明できない(知られていない,または不明)」という意味であることを意識する.
child に関する「事実」は直接書かれていないにもかかわらず,child(anne, ali). が true となることを確認する.
演習3. 様々な問い合わせ
male(X). と入力して「Run」ボタンをクリックし,X = ali と表示されることを確認する.female(X). に書き換えて「Run」ボタンをクリックする.さらに「Next」ボタンをクリックして答えが増えなくなるまで確認し,結果が X = zeyn,X = anne になることを確認する.parent(X, Y). に書き換えて「Run」と「Next」をクリックし,すべての結果(X = ali, Y = anne と X = zeyn, Y = anne)を確認する.child(X, Y). を入力して確認し,結果(X = anne, Y = ali と X = anne, Y = zeyn)を確認する.parent(ali, Y). と書き換えて「Run」ボタンをクリックし,結果(Y = anne)を確認する.child(ali, Y). と書き換えて「Run」ボタンをクリックし,結果が false となることを確認する.
X, Y)を使用した際,条件を満たす変数の組み合わせのすべてが得られることを確認する.
第10回. 探索,総当たり,発見的探索
AIの基礎の1つとして「状態(今の状況)・行動(取りうる操作)・遷移関数(行動で状態がどう変わるか)」の枠組みがある.これは,行動による状態変化を扱うものであり,「適用条件」は,行動が可能である条件を示す. 遷移関数をもとに,将来にわたる可能な行動と状態を算出(探索)し,算出された状態を評価して実際に行動を絞る(選択)という二段階処理で,将来の行動の探索と選択ができる.これは,ゲームAI,自動運転,在庫管理など幅広く応用できる. 起点から枝分かれする経路(パス)の集まりを「木」という.木を使うことで,調べ済みの経路を二度たどらず未探索の経路を一つずつ調べることが簡単にできるようになる. 総当たりは全経路を試し最適解を得る.A*法は「来た道の長さ+ゴールまでの見積もり」が小さい行動を優先して調べる.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
この演習では,Python の turtle グラフィックスを使い,同じ起点から始まる5つのパス(経路)がアニメーションで順番に描かれる様子を観察する.総当たりが「すべてのパスを試す」とはどういうことか,パスと木構造の関係を体感することを目的とする. 使用するサイト(trinket,登録不要・ブラウザのみで実行可能): 操作手順 ヒント 考察ポイント この演習では,A*法(エイ・スター法)で迷路の最短経路を探索する過程を,ブラウザ上のシミュレータで観察する.A*法が「来た道の長さ+ゴールまでの見積もり」を手がかりに,ゴールに近そうな方向へ絞って効率よく探索する様子を確認することを目的とする. 使用するサイト(PathFinding.js,登録不要・ブラウザのみで利用可能): 操作手順 ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. 総当たり(パスと木構造をアニメーションで観察)
https://trinket.io/python/912b1bb2e3
https://trinket.io/python/912b1bb2e3 と入力し,このページを開く.
trinket の編集画面が表示され,画面の左側に Python のプログラム(main.py),右側に実行結果(Result)の領域が並ぶ.1 (1,0) のように行動番号と移動先の座標が表示される.数字が,今どのパスのどの行動を実行しているかを示している.
position = [0, 0] と設定されているためである.
演習2. A*法による迷路探索(発見的探索の観察)
https://qiao.github.io/PathFinding.js/visual/
https://qiao.github.io/PathFinding.js/visual/ と入力し,このページを開く.
格子状のマス目(グリッド)が表示され,緑のマスが起点,赤のマスが終点である.
第11回. プログラミング基礎と探索アルゴリズム
プログラミングには,入力,出力,順次実行,条件分岐,繰り返しという5つの基本機能がある.AI を動かすための状態・行動・遷移関数は,このうち変数と関数を使って表現できる.すなわち,状態は変数で,遷移関数は関数で記述できる.そして,これらを組み合わせれば探索も実現できる. 探索で解ける問題の例として,「2つの水差し問題」がある.この問題では,8通りの行動の組み合わせを総当たりで試すことで,目標とする水量に達する手順を見つけ出すことができる. 一方,あらかじめ必勝の方針が分かっている問題もある.「21ゲーム」では,後手が自分の手番のたびに合計を4の倍数に保てば必ず勝てる.この戦略どおりに打つプログラムも,同じ枠組みで実現できる.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
容量4の水差し①と容量3の水差し②を使い,「8つの行動」を組み合わせて到達できる水の量をすべて見つける演習である.水差しの状態を変数 (x, y) で表し,x は水差し①の水の量,y は水差し②の水の量である.プログラムは trinket(Python や HTML のプログラムをブラウザ上で書いて実行できるサイト)上で,登録不要で実行できる.プログラム内の変数 演習1のプログラムのURL:https://trinket.io/python/1b2d25b99b 操作手順 ヒント 考察ポイント 0から始めて,自分のターンに1・2・3のいずれかを足し合計に加える.21を言った(合計を21にした)方が負けというゲームである.後手は,自分のターン終了時の合計を常に「4の倍数」に保てば必ず勝てる.この演習では,ユーザ(自分)が先手,コンピュータが後手となり,コンピュータが後手必勝のアルゴリズム 演習2のプログラムのURL:https://trinket.io/python/58bb317816 操作手順 ヒント 考察ポイント
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習1. 2つの水差し問題のプログラムによる総当たり探索
nsteps が行動回数を示しており,初期値は nsteps = 2 である.
[行動の番号の並び] x y の形式で,nsteps = 2 回の行動を組み合わせた経路ごとに,最終的な水差し①の水の量 x と水差し②の水の量 y が表示される.表示された全ての行を確認し,2回の行動で到達できる (x, y) の組をすべて読み取る.nsteps = 2 の行を nsteps = 3 に書き替える(「3」は必ず半角の数値にすること).書き替えはソースコード編集画面の該当行をマウスでクリックして数字を直接編集する.書き替えたら「Run」ボタンを再度クリックして実行する.3 回の行動で到達できる (x, y) の組を確認する.nsteps = 4 に書き替え(「4」は必ず半角の数値にすること)て再実行する.4回の行動で到達できる (x, y) の組を確認する.資料の例では,4回の行動で [5, 8, 5, 7] 4 2 という出力があり,行動 5 → 行動 8 → 行動 5 → 行動 7 の順で行うと x = 4, y = 2 となり,水差し②の水の量が 2 になることが示されている.自分の実行結果からも,水差し①または水差し②の水の量が 2 になる経路を探す.
[1, 2] 0 0 は,行動1→行動2の順で実行すると x = 0, y = 0 になることを意味する.nsteps)を増やすほど経路の総数は増え,到達できる (x, y) の組も増える.
nsteps = 2,nsteps = 3,nsteps = 4 と行動回数を増やしていったとき,到達できる (x, y) の組がどのように増えていくかを比較する.
演習2. 21ゲームでの後手必勝アルゴリズムの体験
r = (4 - a % 4) % 4(r が 0 のときは r = 1 に補正)で動作する.プログラムは trinket 上で登録不要で実行できる.
a = ○」の形式で,自分のターン終了時の合計 a が表示される.続いてコンピュータが行動し,「computer: ○, a = ○」の形式で,コンピュータが選んだ数と,コンピュータのターン終了時の合計 a が表示される.
a は今の合計,computer: の直後の数字はコンピュータが選んだ行動(足した数)である.a の値に注目する.資料に示されているとおり,コンピュータのターン終了時の値は 4, 8, 12, 16, 20 と常に4の倍数になる.
第12回. 自然言語処理
自然言語処理は人間の言葉をコンピュータに処理させる技術で,言葉の曖昧性・表現の多様性・常識や文化的背景の理解などの課題を持つ. 自然言語処理の応用技術としては,固有表現抽出・類似度分析・意味的検索・トピックモデリング・感情分析などの分析応用系と,構文解析・意味解析・翻訳の構造変換系がある. 単語や文を数値の並び(ベクトル)に変換すると意味の近さを距離として計算でき,類似語の取得・意味的検索・文の類似度判定が可能になる. 演習ではKNPによる構文解析,DeepL翻訳,Transformerによる感情分析,Web上の単語頻度分析を扱う.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
構文解析(こうぶんかいせき)は,自然言語処理の一部で,文章の構造を分析し,文章内の単語の係り受け(かかりうけ)の解析を行う技術である.KNP は,文を入力すると単語のかたまり(文節)どうしのつながりを自動で見つけてくれるツールである. KNP のデモサイト:http://lotus.kuee.kyoto-u.ac.jp/nl-resource/cgi-bin/knp.cgi 手順 ヒント 考察ポイント DeepL は,文章もファイルもそのまま翻訳できる無料の翻訳ツールである.原文を入力すると訳文が表示されるテキスト翻訳と,ファイルをそのまま翻訳するファイル翻訳がある. DeepL のサイト:https://www.deepl.com/translator 手順 ヒント 考察ポイント
補足説明
WEBブラウザには翻訳機能がある.例えば,Chrome ブラウザでは,ページ上の文字のない場所(余白)を右クリックし,「日本語に翻訳」を選ぶと,ページ全体が日本語に切り替わる.
感情分析は,文章に込められた感情を AI が自動で判定する技術である.この演習では,文章が「ポジティブ (positive)」か「ネガティブ (negative)」かを判定する Python プログラムのソースコードと実行結果を確認する. Colab のページ:https://colab.research.google.com/drive/1-HgN6cDnIRO0bU-xIVpXPi0qrVbxNkOZ?usp=sharing 手順 ヒント 考察ポイント この演習では,ネット上の文章を集めて分析する Web テキスト処理を体験する.Web ページをダウンロードし,タグを除去して文章だけを残し,単語に分割し,よく出る単語を数えてグラフ化する.題材は Wikipedia の富士山の記事であり,自動でダウンロードされる. Colab のページ:https://colab.research.google.com/drive/1sTPY7DBmlcFVf5UF1v81JBlO-HWujeEu?usp=drive_link 手順 ヒント 考察ポイント
[演習の詳細を表示するには,この行をクリックしてください]
演習1. KNP による構文解析
空は青い」と入力する.白い雲と青い空が美しい」と入力し,「Execute」ボタンをクリックして結果を確認する.
演習2. DeepL 翻訳
白い雲と青い空が美しい」と入力する.
演習3. Transformer と Python による感情分析
演習4. Web ページの中の主要単語
第13回. AI とビッグデータ解析
ビッグデータはデータの量・速度・多様性が特徴である.量が多くても質が低ければ分析結果は誤る. 記述的分析(現状把握)と予測的分析(将来推定)は別物であり,相関があっても因果関係があるとは限らない. AIはデータから規則やパターンを自動学習する.学習データが偏っていれば,誤りが発生する. データの質を高めるには,表記の統一・欠損値の除外・外れ値の検出(例:IQR法)が必要である. データ結合では,キーとなる列の値が重複していないか(例:1日の売上が複数行に分かれる場合)を確認した上で結合することで混乱を防ぐことができる.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
AI を用いてデータを分析する際,表記ゆれ・外れ値・欠損値などの問題点を具体的に指示したほうが良い結果が得られるのか,それとも素朴な指示のほうが良い結果が得られるのかを,本演習で実際に確認する.
なお,別のデータでAIを試す場合,必ずしも同じ傾向・結果になるとは限らない.
たこ焼き店の売上記録(全30件)を使って,データ型・文字列の表記ゆれ・日付表記の違いを確認する. 操作手順 今度は,演習1のデータを,表記と型を統一した状態に整えたものである(外れ値と欠損値はそのまま残っている).これを使って代表値と外れ値・欠損値の扱いを確認する. 操作手順 演習2のデータのうち,IQR法で外れ値と判定された9999は欠損値に置き換え済みである.この「たこ焼き店データ」(1日に複数件の取引を含む)に新しく「ジュース店データ」を加え,分析を行う. 操作手順
[動画]
[演習の詳細を表示するには,この行をクリックしてください]
演習
演習1. データ表現の基礎
プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する
プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する
演習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,
「演習1データ」を分析してください。
「演習1データ」を以下の手順で処理してください。
1. 各列(日付・商品・個数・単価)のデータ型を、数値型・文字列型・日付型のいずれかで判定してください。
2. 商品名の表記ゆれ(全角/半角、ひらがな/カタカナ、単位の混入)を検出し、同一商品として統一した場合の一覧を示してください。
3. 日付列の表記形式が何パターンあるか列挙し、統一形式(YYYY-MM-DD)に変換した結果を示してください。4. 以上を終えたら「演習1データ」を分析してください。
ヒント
考察ポイント
演習2. データ処理技術
プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する
プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する
演習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
「演習2データ」の売上傾向をグラフにしてください。
「演習2データ」を以下の手順で処理してください。
1. 個数列について、平均値・中央値を算出してください。
2. IQR法(四分位範囲)を用いて外れ値を検出し、除外した場合と除外しない場合の平均をそれぞれ示してください。
3. 欠損値がある行を列挙し、件数と割合を報告してください。統計量の算出では欠損行は除外してください。
4. 外れ値を除外、欠損値を除外した上で、日付ごとの個数の推移を折れ線グラフで可視化してください。
ヒント
考察ポイント
演習3. データエンジニアリングの実践
プロンプトA:素朴な指示の場合(結果の一部)
AIの特性上実行のたびに回答は変化する
プロンプトB:手法を指定した指示(結果の一部)
AIの特性上実行のたびに回答は変化する
演習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
演習3データ(たこ焼き店・売上記録)と演習3データ(ジュース店・売上記録)の2店舗のデータをまとめて、全体の売上を分析してください。
以下の手順で処理してください。
1. たこ焼き店データは1日に複数件の取引が記録されているため、まず日付ごとに個数の合計を集計してください。その際、個数が欠損している行は合計に含めず、1日の全行が欠損している日(例:2026-10-13)は「合計が算出できない日」として別途報告してください。その上で、2つの表を「日付」をキーとして結合(JOIN)し、日別の全店合計売上(個数×単価)を算出する統合テーブルを作成してください。
2. 作成した統合テーブルをもとに、店舗別・日別の売上構成比を積み上げ棒グラフで可視化してください(記述的分析)。
3. 今のデータから来年の文化祭の売上傾向を予測してください。
ヒント
考察ポイント
第14回. 対話型AI
対話型AIは,大量の文章データから学んだ「言葉のつながり」をもとに,次に来るトークンを一つずつ確率的に予測して文章を生成している. 文章の「流暢さ」と内容の「正しさ」は別の軸であり,流暢でありながら誤った内容を確信的な口調で述べるハルシネーションが起こり得る. プロンプトの工夫やWeb検索・外部情報の参照(グラウンディング),コード生成・実行により回答は改善する場合があるが,正しさは保証されない. AIはたたき台の作成や作業の自動化に用いる.個人情報や機密情報の入力は避け,最終確認は必ず人間が行う.
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
Microsoft 365 Copilot Chat を用いて,同じ質問でも回答が毎回同じではないこと(生成の仕組み),前の回答を受けて会話が続くこと(対話としての定義),指示を具体的にすると回答が整うこと(プロンプト)を確認する演習である. Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 操作手順 Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 ヒント 考察ポイント Microsoft 365 Copilot Chat を用いて,修正指示を重ねて文章を改善すること(反復的対話),後の指示が前のやり取りを踏まえること,最初に与えた文章を後から参照できること(コンテキスト)を確認する演習である. Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 使用する告知文(そのままコピーして使う) 操作手順 Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 ヒント 考察ポイント Microsoft 365 Copilot Chat が,テキスト以外の形式(表の入力とグラフ画像の出力)を扱えること(マルチモーダル)を確認し,集計結果を元データと照合すること(データ活用)を体験する演習である. Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 使用するデータ(見出し行を含め,そのままコピーして使う) 操作手順 Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 ヒント 考察ポイント Microsoft 365 Copilot Chat において,もっともらしい誤答(ハルシネーション)が実際に起こることを体験し,出典による検証で誤りに気づけること,正しい主題では出典がWeb検索で補われること(グラウンディング)を確認する演習である. Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 操作手順 Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 ヒント 考察ポイント
[演習の詳細を表示するには,この行をクリックしてください]
演習1. Copilot で対話と生成のしくみを体験する
演習2. Copilot と協働して告知文を段階的に改善する
情報工学科の学生の皆さんへお知らせいたします。来る11月15日水曜日の午後3時より、第2実験棟の3階にあります大会議室におきまして、卒業研究の中間発表会を開催する予定となっておりますので、対象となる4年生の皆さんは、発表資料を当日までに各自で準備の上、時間に遅れることのないようにご参加くださいますよう、よろしくお願い申し上げます。
演習3. Copilot で表形式データを活用する
タイトル,分類,発行年,ページ数
情報理論入門,教科書,2012,240
機械学習の基礎,教科書,2018,320
データベース設計,専門書,2015,280
アルゴリズム図鑑,一般書,2020,200
統計学の考え方,教科書,2016,260
ネットワーク概論,専門書,2011,300
やさしいPython,一般書,2021,180
セキュリティ入門,専門書,2019,220
演習4. Copilot を知識ベースとして使い,誤りを見抜く
第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 この演習では,生成AIがどのような分野で使われているかを Copilot に列挙させ,質問の仕方を少しずつ変えることで回答がどのように変化するかを観察する. 操作手順 Microsoft 365 Copilot Chat のサイト:https://m365.cloud.microsoft/chat?auth=2 ヒント 考察ポイント Copilot の制限により,1日に生成可能な画像の枚数は5枚程度である. この演習では,Copilot に画像を作らせたうえで,改善の指示を段階的に具体化し,出力がどのように変わるかを観察する.あわせて,画質改善の技術についても Copilot に説明させる. 操作手順 ヒント 考察ポイント この演習では,あらかじめ指定された身近な課題を題材とし,Copilot に解決案を出させる.条件を追加していくと案がどのように変わるかを観察する.題材は次のとおり固定する. 題材:大学の学食は昼休みに混雑し,行列で20分待つことがある. 操作手順 ヒント 考察ポイント
[演習の詳細を表示するには,この行をクリックしてください]
使用するツール(全演習共通)
演習1. 生成AIの応用分野を Copilot に語らせ,聞き方で回答がどう変わるかを見る
演習2. 画像を作らせ,指示の出し方を変えて画質を改善する
演習3. 身近な問題を題材に,条件を足しながら解決案を作らせる
授業計画(クリックにより中身が表示される)
詳しくは「シラバス」を参照する.
最新技術の反映,パソコン教室のパソコンを用いた演習の充実などにより,一部内容が変更になる場合がある.
-
データサイエンス・AIでできること,社会の変化
- 人工知能社会の到来
- 社会で活用されているデータサイエンス・AI
- データサイエンス・AI活用の現場と最新動向
- 産業・社会・生活での変化
- データの活用(オープンデータ,政府統計データなど)
-
データサイエンス・AIの事例,技術
- データサイエンス・AIの活用領域
- データサイエンス・AI利活用のための技術
- データの説明手法(散布図,分布,密度など)
- AIによる分類・特徴抽出・予測
- データサイエンス・AIの歴史と応用分野,最新技術
-
実データによるデータサイエンス・AIの演習
- 政府統計データ,オープンデータの活用
- データ分析手法(クロス集計,相関,平均,誤差)
- データ・AI利活用における留意事項(プライバシー,個人情報,倫理,情報漏えいの防止など)
-
機械学習の基礎とニューラルネットワーク
- 機械学習の基礎と展望
- データからの学習のメカニズム
- 最適化アルゴリズムの基本概念
-
ニューラルネットワークの基本構造と画像分類
- ニューラルネットワークの基本構造
- ニューラルネットワークの学習方法
- 学習メカニズム
- 画像分類システムの基本構造
- パターン抽出,特徴抽出
- ディープラーニングへの接続
-
ニューラルネットワークシステムの構築と運用
- 学習の検証と評価(学習不足,過学習,学習曲線)
- システムの運用方法
- AI活用の企画・実施・評価の全体像
-
さまざまな機械学習 ー 機械学習の広がりを学ぶ
- 教師なし学習
- 強化学習,自己学習
- ディープラーニングの特色,応用分野
- 系列データ分析
-
AIとコンピュータビジョン
- コンピュータビジョン
- AIによる画像の認識・理解,基礎技術
- 画像理解の3種類:画像分類,物体検出,セグメンテーション
- 顔情報処理,顔ランドマーク
-
知識表現と推論
- 推論エンジンの仕組み
- 述語論理の基礎
- AIとデータの組み合わせによる知識創造,知識活用
-
データ構造とアルゴリズムの基礎
- データ構造(パス,木)の基本概念
- アルゴリズムの基礎
- 探索アルゴリズムの基礎と応用
- 知的なシステム
- 発見的探索の手法
-
プログラミング基礎と探索アルゴリズム
- プログラミング基礎の習得
- プログラミングによる知的なゲームプレイヤーの実現
- 探索アルゴリズムの実現
- 日常生活の課題解決のためのプログラミング
-
自然言語処理
- 形態素解析
- 日本語文書の類似度分析と感情度分析
- テキストマイニング(文書からの有用な情報の抽出)
-
コンピュータでのデータ表現とデータエンジニアリング
- ビッグデータの特徴と活用方法
- コンピュータでのデータ表現の基礎と具体的方法
- データ処理技術(Excel関数,インポート)
- データエンジニアリングの実践
-
対話型AI
- 対話型AIの概要
- 対話型AIとの協働と問題解決
- 対話型AIのベストプラクティス,注意点
- データの説明,データの分析,データの処理での活用
- 知識ベースとしての活用
-
生成AIの基礎と展望
- AIとデータの共創
- 生成AIの応用分野
- 画質改善
- 具体的領域での生成AIによる問題解決
- 文章からの音声・画像・動画表現生成
人工知能をいつでも学べるプラットフォーム開始
株式会社dott社との協働によるものである.現在は,5回分の授業の資料を見やすい形に整形して公開している.