「人工知能」サポートページ
授業担当教員:金子邦彦(情報工学科), サポートページ: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は余裕がある人向けである(注意書きを確認の上で各自で実行してほしい)。
説明の「ニューラルネットワークの基本構造」に対応する演習である.畳み込みニューラルネットワーク(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/ 操作手順 観察と考察
ここから先は、余裕のある人向け(自分でWebカメラや画像ファイルを準備して、自力で進める人向け)である。
演習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:相関係数の値から判断を行う。 体験のポイント 演習④で扱った指標とは別の組合せ(例:人口×失業率、人口×新設住宅着工戸数)を試すと、意外な結果が得られることがある。相関係数が0.3程度の場合、「相関があるとは言い切れない」と判断する慎重さが必要である。
[演習の詳細を表示するには、この行をクリックしてください]
演習について
翻訳サイト
Chromeブラウザの翻訳機能の使い方
演習① 質問を理解するAI 「Data Commons」
How has the population of Japan changed over time?Life expectancy in Japan compared to other G7 countriesUnemployment rate in Tokyo演習② データの隙間を埋めるAI 「Gapminder」
Excelで相関係数を求める手順
=CORREL(A2:A48, B2:B48) のように入力する。範囲は自分のデータ件数に合わせて変える。演習③ 過去の気象データ・ダウンロードと相関の分析
演習④ 総務省統計局「統計でみる都道府県のすがた」から相関の分析
=CORREL(L14:L60, V14:V60)
演習⑤ 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」という名称に出会った際は,同系統のツールである.原版も同じ操作方法で利用できる. 事前準備:演習②を先に体験しておくと理解しやすい. 注意:本サイトは英語で表示される.操作要素は主にボタンとドロップダウンメニューであり,英語が不得意でも直感的に操作できる. 操作手順 A Machine Learning Playground:https://playground.scienxlab.org/ ヒント 考察ポイント
スライド資料と演習手順の資料は,https://www.kkaneko.jp/mi/index.html で,各回の授業開始時刻までに掲載します。
セレッソのコースニュースで授業に関するお知らせを配信します。また,小テスト機能で課題を出します。あわせて確認してください。
本科目の資料は,以下の2種類で構成されています。
[演習の詳細を表示するには、この行をクリックしてください]
Chromeブラウザの翻訳機能の使い方
演習① Quick, Draw! の体験
カヌー)が表示される.「OK」をクリックして開始する.
演習② Neural Network Playground の体験
H=9 と表示されたスライダーを確認する.H は,ネットワーク内部のニューロンの数を表す.H=1)まで動かす.ニューロンが1個のみとなり,分類の境目が直線1本になることを観察する.H=2,H=3,H=4 と増やしていく.分類の境目が,直線の組み合わせから複雑な形状に変化していく様子を観察する.H=9)まで動かす.赤と青の点の配置にもよるが、曲線的で複雑な分類の境目が形成されることを観察する.
H=1)と,多くした場合(H=9)とで,それぞれ,どのようなデータが正しく分類できるかを考察する.演習③ A Machine Learning Playground の体験
第5回. 機械学習、ニューラルネットワーク
ニューラルネットワークは脳神経回路を模した構造であり、各ニューロンは入力への重みづけ、合計とバイアス、活性化関数の適用という3段階で処理を行う。 学習は誤差に基づき重みとバイアスを修正する反復処理であり、繰り返しごとに誤差が減少するように処理を行う。 活性化関数は非線形変換を担い、中間層ではReLUなどを利用し、最終層では出力を確率へ変換するソフトマックスを用いるなど、層の役割に応じて使い分ける。 中間層を複数備えたディープニューラルネットワークは複雑なパターンの学習を可能にする。
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
Chromeブラウザの翻訳機能の使い方
画面が英語で読みにくい場合は、以下の手順でページ全体を日本語に翻訳できる。
手順A:ページ上の文字のない場所(余白)を右クリックする。
手順B:表示されたメニューから「日本語に翻訳」を選ぶ。
手順C:ページ全体が日本語に切り替わる。元の英語に戻したい場合は、アドレスバー右側に表示される翻訳アイコン(丸の中にGの形)をクリックし、「英語」を選ぶ。
注意:Googleの翻訳では、専門用語や固有名詞が不自然な日本語になる場合がある。意味が分かりにくい箇所は、元の英語表示に戻して確認するとよい。
演習① Neural Network Visualizer による画像分類の学習体験
Neural Network Visualizer は,ニューラルネットワークの構造と学習過程をブラウザ上で視覚的に観察できる教材サイトであり,登録不要で利用できる.データセットの選択,ネットワーク構成の指定,訓練の実行,訓練中のニューロンの活性度の変化を確認できる.
Neural Network Visualizer のサイト:https://www.nn-visual.com/
操作手順
- URLにアクセスする.
Neural Network Visualizer のサイト:https://www.nn-visual.com/
- 画面上部に「1 Pick Dataset」「2 Configure Network」「3 Initialize」「4 Train」の4つのセクションが順に並ぶ.
- 「1 Pick Dataset」セクションで,表示されているデータセットの中から「
iris」のカードをクリックして選択する.iris は、あやめの花びら、がく片の幅と高さを測定したデータである. iris を選んだら、下の「Next: Configure Network」をクリックして次に進む. - 「2 Configure Network」セクションで,中間層の数と各層のニューロン数を確認する.初期設定のままで実行できるため,変更しなくてよい.下の「Next: Review & Initialize」をクリックして次に進む.
- 「3 Initialize」セクションで「Initialize Model」ボタンをクリックし,ニューラルネットワークを初期化する.ネットワーク図に,入力層・中間層・出力層のニューロンと結合が表示される.
- 「4 Train」セクションの訓練開始ボタンである「Start Training」または「Train」を繰り返しクリックする.訓練中に,ネットワーク図でニューロンの明るさ(活性度)が変化する様子を観察する.画面下部の「Training Loss」グラフで,学習の繰り返しごとに損失(誤差)が減少する様子を確認する.
- 余裕があれば,「2 Configure Network」に戻って中間層の数やニューロン数を変更し,「3 Initialize」で初期化しなおして訓練を行い,分類精度や学習過程の変化を比較する.
ヒント
- 画面上の凡例(Legend)には,入力ニューロン・中間ニューロン・出力ニューロンの区別,ニューロンの明るさが活性度を示すことが記載されている.具体的な色は画面の凡例で確認する.
- 訓練中または訓練後に個別のニューロンや結合をクリックすると,重みやバイアスの数値が表示される.
- 「Initialize Model」を再度実行して訓練しなおすと,挙動が変わる場合がある.
考察ポイント
- 訓練の進行に伴い,どのニューロンが強く点灯する(活性度が高くなる)かを観察し,ニューロンが特定のパターンに応じて活性化する様子を確認する.
- 手書き数字の描画結果と分類結果を比較し,誤分類が起きた場合は,入力のどの特徴が原因か(線の太さ,位置のずれ,描画の途切れなど)を考える.
- 中間層のニューロン数を増減させた場合,損失の減少と最終的な正解率の変化を比較する.
演習② ReLU(Pythonで実現)
ReLU は,ニューラルネットワークで用いられる活性化関数の一つである.負の入力を 0 に変換し,0 以上の入力はそのまま出力する関数である.本演習では,ReLU関数を実装したPythonプログラムを実行し,異なる入力値(負数,0,正数)に対する変換結果を確認することを目的とする.条件分岐(if と else)によるプログラミングも体験する.
ソースコードのURL:https://trinket.io/python/61c6503fcada
操作手順
- URLにアクセスする.
ソースコードのURL:https://trinket.io/python/61c6503fcada
- 画面の左側にソースコード,右側に実行結果(Result)が表示される.
- 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
- 右側に,入力値
x = -2, -1, 0, 1, 2のそれぞれに対するrelu(x)の値が順に表示されることを確認する. - 動作確認の後,左側のソースコード(入力値のリストや関数の定義)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.
ヒント
- ソースコード中の
if x < 0:とelse:が条件分岐を表す.x が 0 未満の場合は 0 を返し,そうでない場合は x をそのまま返す. - 異なる入力値(負数,0,正数)で実験することで,ReLU の挙動を確認できる.
考察ポイント
- ReLU関数の動作を「負の入力 → 0」「0以上の入力 → そのまま出力」であることを確認する.
- 入力 x が -2 や -1 のときに
relu(x)が 0 となることを、if x < 0:とelse:の部分を見て、再度確認する.
演習③ 入力の重みづけ,合計とバイアス,活性化関数の適用
1つのニューロンに2つの入力 (x1, x2) を与え,重みとの掛け算,合計,バイアスの加算,活性化関数(ReLU)の適用という一連の計算を行う.本演習では,1つのニューロンの計算をPythonで実行し,4つの入力パターンに対する活性度を求める.重み,バイアス,活性化関数という3つの基本要素の役割と連携を理解する第一歩となる.
ソースコードのURL:https://trinket.io/python/1c339b660ee1
操作手順
- 上記のURLにアクセスする.
ソースコードのURL:https://trinket.io/python/1c339b660ee1
- 画面の左側にソースコード,右側に実行結果(Result)が表示される.
- 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
- 右側に,入力 (0, 0), (0, 1), (1, 0), (1, 1) のそれぞれに対する活性度が表示されることを確認する.
- 動作確認の後,左側のソースコード(重み,バイアス,入力など)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.
ヒント
- 関数
n(x1, x2)の中のs = 1 * x1 + 1 * x2 - 0.5が,重みとの掛け算・合計・バイアスの加算をまとめて行う式である.重みは2つとも 1,バイアスは -0.5 に設定されている. return relu(s)によって,合計結果 s に活性化関数 ReLU を適用している.- 入力 (1, 0) の場合は,1×1 + 0×1 - 0.5 = 0.5 となり,ReLU を適用した活性度は 0.5 となる.
考察ポイント
- 入力 (0, 0) のときに活性度が 0 となることについて,s の計算結果と ReLU の働きの両面から確認する.
- バイアスを -0.5 から別の値(例:-1.5,0 など)に変更した場合の活性度の変化を予想し,コードを書き替えて実行して確認する.
演習④ ニューラルネットワーク
複数のニューロンを層として組み合わせると,1層の場合より複雑な判断ができる.本演習では,3つのニューロン(n1,n2,n3)から成るニューラルネットワークをPythonで実行し,4つの入力パターンに対する活性度を求める.複数のニューロンが層を形成することによる情報処理の基礎を体験する.
ソースコードのURL:https://trinket.io/python/3cbc3f3ed057
操作手順
- 上記のURLにアクセスする.
ソースコードのURL:https://trinket.io/python/3cbc3f3ed057
- 画面の左側にソースコード,右側に実行結果(Result)が表示される.
- 実行結果が表示されない場合は,コードエリア上部の実行ボタン(▶ の三角形アイコン)をクリックする.
- 右側の Result 欄に,入力 (0, 0), (0, 1), (1, 0), (1, 1) のそれぞれに対する活性度が表示されることを確認する.
- 動作確認の後,左側のソースコード(各ニューロンの重み・バイアス,入力など)を書き替えて再度実行することもできる.書き替え後は,再度実行ボタンをクリックする.
ヒント
- ニューロン
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に渡していることを示す. - 各ニューロンは,重みづけ・合計・バイアスの加算・ReLU の適用という同じ手順(演習③と同じ手順)で計算する.重みとバイアスの値だけが異なる.
考察ポイント
- 4つの入力パターン (0, 0), (0, 1), (1, 0), (1, 1) のうち,どの入力で活性度が大きくなり,どの入力で 0 になるかを,実行結果から整理する.
n1とn2の出力(n3に渡される中間値)が,それぞれの入力に対してどのような値になっているかを考察する.余裕があれば,n1とn2の出力を表示するprint文をコードに追加し,再度実行して確認する.- 演習③の1つのニューロンによる結果と本演習の3つのニューロンによる結果を比較し,1層と2層では入力に対する活性度のパターンにどのような違いが生まれているかを考察する.
演習⑤ Fashion MNIST 画像分類のコード読解
TensorFlow のチュートリアル「基本的な画像分類」は,Fashion MNIST(衣料品・履物・バッグの計10クラスの28×28画素のグレースケール画像)を題材に,ニューラルネットワークによる画像分類の一連の流れをPythonコードで示している.本演習では,このチュートリアルのページをログインせずに閲覧し,説明文とソースコードを読み取って,画像分類の処理の流れを理解することを目的とする.コードの実行は行わない.コードに含まれる出力例(学習過程の表示,分類結果の図)も併せて確認する.
チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification
操作手順
- 上記のURLにアクセスする.
チュートリアルのURL:https://www.tensorflow.org/tutorials/keras/classification
- ページが表示される.ログインは不要である.
- ページを上から順に読み進める.ページは見出しごとに別れている.
- 「Fashion MNIST データセットをインポートする」のセクションで,
fashion_mnist.load_data()によって訓練データ60,000枚とテストデータ10,000枚が読み込まれることを,説明文とコードから読み取る.10クラスのラベル(T-shirt/top,Trouser,Pullover,Dress,Coat,Sandal,Shirt,Sneaker,Bag,Ankle boot)の対応表を確認する. - 「データの前処理」のセクションで,画素値が 0〜255 の整数であることをコード
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)が上昇する様子をページ内の出力例から読み取る. - 「予測する」のセクションで,10クラスそれぞれの確率として分類結果が得られることを確認する.
predictions[0]の出力(10個の数値)を見て,最も大きい値に対応するクラスが分類結果となることをnp.argmaxの説明から読み取る. - 同セクションの図(テスト画像と棒グラフ)を確認する.棒グラフは10クラスそれぞれの確率を示す.正解の場合は青,不正解の場合は赤で表示される.
ヒント
- 本演習はコードを実行しないため,Googleアカウントは不要である.ページ上の出力例(数値,グラフ画像)が実行結果として既に表示されているので,それを観察対象とする.
- コード中の
activation='relu'は,演習②で扱った ReLU 関数を活性化関数として用いることを示す. - コード中の
Dense(128)やDense(10)の数値(128,10)は,それぞれ中間層と出力層のニューロン数である.出力層のニューロン数 10 は,分類するクラス数(10種類)と一致する. epochs=10は,同じ訓練データを繰り返し用いて学習を行う回数を示す.
考察ポイント
- 「Train the model」セクションの出力例で,
Epochが進むにつれて損失が減少し,正解率が上昇する様子を読み取り,「学習は一度で正解にたどり着くのではなく,徐々に近づける」という仕組みを,具体的な数値の変化として確認する. - モデルの構造(
Flatten→Dense(128, relu))について.784個の入力に対する重みづけ・合計・バイアスの加算・ReLU の適用が,128ニューロン分して行われていることを考察する. - 分類結果の棒グラフで,正解クラスの確率が高い場合と,誤分類が起きている場合の両方が示されていることを確認する.
昨年度(2025年度)の資料について(クリックにより中身が表示されます)
参考として,昨年度のスライド資料を掲載しています。今年度と内容が異なる場合がありますので,あくまで参考としてください。今年度の資料は,このページ(https://www.kkaneko.jp/mi/index.html)に整備していきます。
授業計画(クリックにより中身が表示されます)
詳しくは「シラバス」を参照してください。
最新技術の反映、パソコン教室のパソコンを用いた演習の充実などにより、一部内容が変更になる場合があります。
-
データサイエンス・AIでできること,社会の変化
- 人工知能社会の到来
- 社会で活用されているデータサイエンス・AI
- データサイエンス・AI活用の現場と最新動向
- 産業・社会・生活での変化
- データの活用(オープンデータ、政府統計データなど)
-
データサイエンス・AIの事例,技術
- データサイエンス・AIの活用領域
- データサイエンス・AI利活用のための技術
- データの説明手法(散布図,分布,密度など)
- AIによる分類・特徴抽出・予測
- データサイエンス・AIの歴史と応用分野,最新技術
-
実データによるデータサイエンス・AIの演習
- 政府統計データ、オープンデータの活用
- データ分析手法(クロス集計,相関,平均,誤差)
- データ・AI利活用における留意事項(プライバシー、個人情報、倫理、情報漏えいの防止など)
-
コンピュータでのデータ表現とデータエンジニアリング
- ビッグデータの特徴と活用方法
- コンピュータでのデータ表現の基礎と具体的方法
- データ処理技術(Excel関数,インポート)
- データエンジニアリングの実践
-
機械学習の基礎と数学基礎
- 数学基礎(線形代数,確率など)
- 機械学習の基礎と展望
- データからの学習のメカニズム
- 最適化アルゴリズムの基本概念
-
データ構造とアルゴリズムの基礎
- データ構造(パス,木)の基本概念
- アルゴリズムの基礎
- 探索アルゴリズムの基礎と応用
- 知的なシステム
- 発見的探索の手法
-
プログラミング基礎と探索アルゴリズム
- プログラミング基礎の習得
- プログラミングによる知的なゲームプレイヤーの実現
- 探索アルゴリズムの実現
- 日常生活の課題解決のためのプログラミング
-
ニューラルネットワークの基礎
- ニューラルネットワークの基本構造
- ニューラルネットワークの学習方法
- 学習メカニズム
- ニューラルネットワークの社会課題解決への応用
-
深層学習(ディープラーニング)の基礎と展望
- 深層学習(ディープラーニング)の基礎
- 画像システムの基本構造
- 深層学習による画像処理
- 深層学習の具体的適用、価値創造
-
深層学習システムの構築と運用
- 深層学習システムの検証と評価
- 学習メカニズム(学習不足,過学習,学習曲線)
- AIシステムの運用方法
- AI活用の企画・実施・評価の全体像
-
AIとコンピュータビジョン
- コンピュータビジョン
- AIによる画像の認識・理解、基礎技術
- AIの社会実装における課題解決
- 夜間等の画像の画質改善技術
- 文字認識・文字読み上げシステム
- Google Lensと類似サービスの活用
-
知識表現と推論
- 推論エンジンの仕組み
- 述語論理の基礎
- AIとデータの組み合わせによる知識創造、知識活用
-
自然言語処理
- 形態素解析
- 日本語文書の類似度分析と感情度分析
- テキストマイニング(文書からの有用な情報の抽出)
-
AI対話システム
- AI対話システムの概要
- AI対話システムとの協働と問題解決
- AI対話システムのベストプラクティス、注意点、展望
- データの説明、データの分析、データの処理での活用
- 知識ベースとしての活用
-
生成AIの基礎と展望
- AIとデータの共創
- 生成AIの応用分野
- 画質改善
- 具体的領域での生成AIによる問題解決
- 文章からの音声・画像・動画表現生成
人工知能をいつでも学べるプラットフォーム開始
株式会社dott社との協働によるものです。現在は,5回分の授業の資料を見やすい形に整形して公開しています。
[動画]