ディープラーニング演習(全15回)
大学で使用した自作の資料等を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.
【目次】
- 人工知能(AI)の基礎と応用:概要,種類,活用分野,およびプログラミング入門 [PDF], [パワーポイント], [HTML]
- Python プログラミングとデータ分析の基礎:Trinket を活用した実践的入門 [PDF], [パワーポイント], [HTML]
- 機械学習の基礎① ー 教師あり学習編 ー:[PDF], [パワーポイント]
- 機械学習の基礎② ー 教師あり学習編:[PDF], [パワーポイント]
- ニューラルネットワークとディープラーニング入門:基礎理論から実践まで [PDF], [パワーポイント]
- ニューラルネットワークの基礎と学習メカニズム:[PDF], [パワーポイント]
- 画像認識のための畳み込みニューラルネットワーク(CNN)入門:基礎概念から実装まで:[PDF], [パワーポイント]
- ディープラーニングによる画像理解:[PDF], [パワーポイント]
- ディープラーニングによる顔情報処理の基礎と応用 [PDF], [パワーポイント]
- 予測と判断(時系列データ分析,移動平均,RNNとLSTMの紹介) [PDF], [パワーポイント]
- 自然言語処理(問答,要約,テキスト生成,単語の特徴ベクトル,単語の類似度) [PDF], [パワーポイント]
- 姿勢推定 [PDF], [パワーポイント]
- 中間まとめ,AI技術の進展 [PDF], [パワーポイント]
- 人工知能による画像生成 [PDF], [パワーポイント]
- チャットボットとの対話による問題解決 [PDF], [パワーポイント]
- 画像合成の演習 [PDF], [パワーポイント]
【サイト内の関連ページ】
1. 人工知能(AI)の基礎と応用:概要,種類,活用分野,およびプログラミング入門
【概要】 人工知能(AI)は,コンピュータが人間のような知的能力を持つことを目指す技術である.AIの3要素である知能,知識,学習を組み合わせることで,人間のような知的な振る舞いを実現する.AIの応用例は多岐にわたり,対話型AI,自動翻訳,視覚情報処理,データ分析と予測,自動化と最適化,画像生成などが挙げられる. AIの利点は24時間365日の稼働,大量データの高速処理,細かいパターンの検出能力にある.一方で,創造性や柔軟性に限界があり,予期せぬ状況への対応が苦手という欠点もある.AIの責任ある活用には,人間主導の判断,個人情報の慎重な取り扱い,偽情報の抑制が重要である. 機械学習は,AIの中核を成す技術であり,訓練データを用いてコンピュータの知的能力を向上させる.この技術により,画像理解,自然言語処理,予測などの分野で飛躍的な進歩が見られる. プログラミングは,AIシステムの構築に不可欠なスキルである.Pythonは,読みやすさと書きやすさに優れ,AI開発でも広く使用されているプログラミング言語である.trinketのようなオンライン学習プラットフォームを活用することで,プログラミングやAIの基礎を効果的に学ぶことができる. AIは,生産性の向上,科学技術の発展,コミュニケーションの壁の除去など,社会に大きな変革をもたらす可能性を秘めている.今後,AIの発展と共に,その可能性と課題に向き合いながら,人間とAIの協調的な関係を築いていくことが重要である.
演習
演習1.さまざまなAI
- 翻訳サイト DeepL: https://www.deepl.com/
- ぴよ将棋: https://www.studiok-i.net/ps/
- Craiyon: https://www.craiyon.com/
演習2.Python プログラムの実行
https://trinket.io/python/94d1563844
演習3.簡単なプログラムでもさまざまなことが可能
https://trinket.io/python/2b804ab19a
https://trinket.io/python/597e5771ff
https://trinket.io/python/4e3559f879
https://trinket.io/python/bdcce27488
【関連する外部サイト】
trinket: https://trinket.io/
キーワードとその説明文
- 人工知能(AI): 人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である.AIは24時間365日稼働可能で大量データの高速処理や細かいパターンの検出,反復作業の効率化に優れている.一方で,創造性や柔軟性に限界があり,予期せぬ状況への対応が苦手である.
- AIの3要素(知能,知識,学習): AIの3要素は,思考や判断などの能力である知能,情報を収集し処理する能力である知識,知的な能力が上達できる能力である学習から成る.これらの要素が組み合わさることで,AIは人間のような知的な振る舞いを実現することができる.
- AIの応用例: AIの応用例には,顔検知・顔識別,画像のセグメンテーション,Webブラウザでの翻訳などがある.これらの技術は,セキュリティシステムや自動運転車の障害物検知,多言語コミュニケーションの支援など,様々な分野で活用されている.
- AIの利点と欠点: AIの利点は24時間365日稼働可能,大量データの高速処理,細かいパターンの検出,反復作業の効率化である.一方,欠点は創造性や柔軟性の限界,予期せぬ状況への対応の苦手さ,倫理的判断の難しさ,学習データの品質や偏りによる結果の悪化などである.
- 対話型AI(チャットボット): 対話型AIは,人間の言葉を理解し応答するシステムである.文章の翻訳や要約のほか,相談や自由なアイデア出しにも活用できる.この技術により,カスタマーサポートの効率化や,ユーザーとの対話型インターフェースの実現が可能となっている.
- 自動翻訳サービス: 自動翻訳サービスは,AIを用いて異なる言語間の翻訳を行うシステムである.DeepLなどのサービスでは,高精度な翻訳が可能となっている.この技術により,言語の壁を超えたコミュニケーションや情報アクセスが容易になっている.
- 視覚情報処理: 視覚情報処理は,AIが画像や映像を分析し理解する技術である.例として,車両の場所と向きの検出,自動でのぼかし処理,顔検知,群衆のカウント,顔のキーポイント読み取り,目の動きの読み取り,表情の自動判定,人体の姿勢読み取りなどがある.
- データ分析と予測: データ分析と予測は,AIが過去のデータを基に将来を予測する技術である.この技術は,顧客行動予測,市場動向分析,疾病の早期発見など,様々な分野で活用されている.大量のデータから人間には見つけにくいパターンを発見し,意思決定を支援する.
- 自動化,最適化: 自動化と最適化は,AIを用いて作業の効率化や最適な解の導出を行う技術である.工場の生産ラインの最適化やスマートホームの制御などに応用されている.人間の介入を最小限に抑えつつ,効率的かつ最適な運用を実現することができる.
- 合成(画像生成,画質改善,顔の3次元化): AIによる合成技術は,新たな画像の生成,既存画像の画質改善,2次元画像からの3次元モデル生成などを可能にする.この技術により,クリエイティブな作業の効率化や,仮想現実・拡張現実などの分野での応用が進んでいる.
- AIの可能性: AIは生産性の向上,科学技術の発展,コミュニケーションの壁の除去などの可能性を持つ.人間がより創造的な仕事に集中できるようになり,膨大なデータから新たな発見が生まれ,言語の壁を超えたコミュニケーションが可能になる.これらにより,社会や産業に大きな変革をもたらす可能性がある.
- AIの責任ある活用: AIの責任ある活用には,人間主導の判断,個人情報の慎重な取り扱い,偽情報の抑制が重要である.AIはあくまで人間を支援する道具であり,最終的な判断は人間が行う.また,AIに個人情報を与える際には慎重を期し,複数の信頼できる情報源を参照する習慣が大切である.
- 機械学習: 機械学習は,コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.情報の抽出,簡潔さ,限界の超越が特徴である.訓練データを用いて学習し,その結果として知的能力が向上する.画像理解,自然言語処理,予測など多数の分野で応用されている.
- 訓練データ: 訓練データは,機械学習において学習に使用される大量のデータセットである.例えば,画像分類タスクでは,多数の分類済み画像が訓練データとして使用される.訓練データの品質や量が,機械学習モデルの性能に大きな影響を与える.
- プログラミング: プログラミングは,コンピュータに指示を出し,所定の作業を遂行させるためのプログラムを設計し作成するプロセスである.創造的な活動であり,アイデアを形にできることが魅力である.プログラミングにより,複雑な作業の自動化や効率化が可能となる.
- Python: Pythonは,多くの人々に利用されているプログラミング言語の一つである.読みやすさ,書きやすさ,幅広い応用範囲が特徴である.文法のシンプルさ,拡張性,柔軟性により,初心者から専門家まで幅広いユーザーに支持されている.
- trinket: trinketは,オンラインでPythonやHTMLなどのプログラムを作成・実行できる学習サイトである.ブラウザで動作し,自作のプログラムを公開し他者と共有することも可能である.Pythonの標準機能に加え,matplotlib.pyplot,numpy,processingなどの外部ライブラリも利用可能である.
2. Python プログラムの実行,Python でのデータマネジメント
【概要】 Pythonは,読みやすさと幅広い応用範囲が特徴のプログラミング言語である.変数とオブジェクト,メソッドの概念を理解することが基本となる.外部ライブラリを活用することで,効率的で高機能なプログラム作成が可能となる. 本講義では,Trinketを用いてPythonプログラムを実行し,タートルグラフィックスによる図形描画やMatplotlibによるデータの可視化を体験する.特に,散布図の作成を通じてデータの傾向や相関関係を視覚的に把握する方法を学ぶ. さらに,機械学習の基礎として線形回帰を取り上げ,Irisデータセットを用いて実践的な分析を行う.これにより,データからパターンを抽出し,予測を行う機械学習の基本的な流れを理解する. プログラミングは,Web開発,データ分析,人工知能,ゲーム開発など多岐にわたる分野で応用されている.本講義を通じて習得するPythonプログラミングの基礎知識は,これらの応用分野への足がかりとなる. プログラミングは人間の力を増幅し,私たちができることを大幅に広げる可能性を持つ.論理的思考力や問題解決能力の向上にも寄与し,デジタル社会における必須のスキルとなっている.
演習
演習1.変数と代入
- プログラム1: 基本的な変数の使用
name = "太郎" print("こんにちは、" + name + "さん!")
- プログラム2: 数値の変数と簡単な計算
x = 5 y = 3 print("x の値:", x) print("y の値:", y) print("x + y の結果:", x + y)
- プログラム3: 変数の更新
score = 80 print("元のスコア:", score) score = 95 print("更新後のスコア:", score)
https://trinket.io/python/b869619b0874
プログラム4: ユーザー入力と変数 user_name = input("あなたの名前を入力してください: ") print("ようこそ、" + user_name + "さん!")
- プログラム5: 複数の変数
adjective = "楽しい" noun = "プログラミング" print("Python は" + adjective + noun + "です!")
演習2.タートルグラフィックス
https://trinket.io/python/f29bfe71cd
https://trinket.io/python/035810ce8d49
https://trinket.io/python/ddb861147133
演習3.外部ライブラリの利用
https://trinket.io/python/a563124a187c
https://trinket.io/python/5830b6d18e9c
https://trinket.io/python/9fe4ad1bb348
演習4.散布図
https://trinket.io/python/625038de4886
演習5.実データの散布図
https://trinket.io/python/41dee25e267f
https://trinket.io/python/8f33f7399c2d
演習6.データからのパターンの抽出
https://trinket.io/python/6bcf5472e3fd
【関連する外部サイト】
trinket: https://trinket.io/
キーワードとその説明文
- Python: Pythonは,多くの人々に利用されているプログラミング言語の1つである.読みやすさ,書きやすさ,幅広い応用範囲が特徴である.直感的で読みやすい文法を持ち,print で簡単に出力できる,if や else で条件分岐,for や while で繰り返しなどの基本的な構文がある.
- 変数と代入: 変数は,プログラム内で名前を付けて利用するオブジェクトで,値を保存し,後から参照できる.代入は「x = 100」のように書くことで,x という名前の変数に値 100 が保存される操作である.変数は値を更新することも可能で,プログラムの中で動的に値を管理するために使用される.
- オブジェクトとメソッド: オブジェクトは,コンピュータでの操作や処理の対象となるものである.メソッドは,オブジェクトに属する機能や操作で,オブジェクトが持つ能力に相当する.メソッドにはオブジェクト名と「.」を付けてアクセスし,引数を指定して呼び出すことができる.例えば,t.goto(0,100)では,t がオブジェクト,goto がメソッドである.
- タートルグラフィックス: タートルグラフィックスは,Pythonでグラフィックスを描画するためのライブラリである.亀(タートル)のオブジェクトを動かすことで図形を描く.主なメソッドには,goto(移動),forward(前進),backward(後退),right(右回転),left(左回転)がある.これらのメソッドを組み合わせることで,様々な図形や模様を描くことができる.
- 外部ライブラリ: 外部ライブラリは,プログラミング言語の標準機能以外の追加機能を提供するプログラム集である.さまざまな目的のために何度も利用できる.外部ライブラリの活用はソフトウェア開発に不可欠で,効率的で高機能なプログラム作成を可能にする.Trinketでは,matplotlib.pyplot,numpy,processing,pygalなどがインストール済みである.
- Matplotlib: Matplotlibは,Pythonでグラフや図表を作成するための外部ライブラリである.散布図,折れ線グラフ,棒グラフなど,様々な種類のグラフを作成できる.データの可視化に広く使用され,プログラムで簡単にカスタマイズ可能なグラフを生成できる.例えば,plt.plot(x, y, 'o')でデータポイントをプロットし,plt.show()でグラフを表示する.
- NumPy: NumPyは,Pythonの数値計算や配列処理のための外部ライブラリである.高性能な多次元配列オブジェクトや,それらを操作するためのツールを提供する.科学技術計算,データ分析,機械学習など,多くの分野で広く使用されている.数学的な演算を効率的に行うことができ,大規模なデータセットの処理にも適している.
- 散布図: 散布図は,2つの変数の関係を視覚化するためのグラフである.x軸とy軸にそれぞれの変数の値をプロットし,データポイントの分布を表示する.Matplotlibを使用して簡単に作成でき,データの傾向や相関関係を一目で把握するのに役立つ.例えば,Irisデータセットの花弁の長さと幅の関係を可視化するのに使用された.
- Irisデータセット: Irisデータセットは,機械学習や統計学でよく使用される有名なデータセットである.3種類のアヤメ(Iris)の花の特徴を記録したもので,150個のサンプル(各種類50個ずつ)がある.各サンプルには4つの特徴(がく片の長さと幅,花弁の長さと幅)と種類(setosa,versicolor,virginica)が記録されており,分類問題やデータ分析の実習によく用いられる.
- 機械学習: 機械学習は,コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.データの中からパターンや関係性を自動で見つけ出す能力があり,人間が設定しなければならなかったルールを自動で生成できる.他の方法では難しかった課題でも,機械学習を用いることで解決策や新たな視点を得られる可能性がある.
- 線形回帰: 線形回帰は,機械学習の基本的な手法の一つで,2つの変数間の線形関係をモデル化する.例えば,Irisデータセットの花弁の長さと幅のデータから,これらの関係を表す直線を見つける.この技術を使用することで,新しいデータに対して予測を行うことができる.例えば,花弁の長さが5.0cmの花に対して,その幅を予測することが可能になる.
- プログラミングの応用分野: プログラミングは,Web開発,データ分析,人工知能,ゲーム開発,IoT(Internet of Things),サイバーセキュリティなど,多岐にわたる分野で応用されている.例えば,Web開発ではフロントエンドとバックエンド,データ分析ではビッグデータ処理や統計分析,人工知能では自然言語処理やコンピュータビジョンなどに活用されている.
3. 機械学習の基礎① ー 教師あり学習編
【概要】 機械学習は,コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.この技術は,データ内のパターンや関係性を自動で抽出し,人間が設定しなければならなかったルールを自動生成する能力を持つ. 機械学習の主要な手法の一つに教師あり学習がある.これは,入力データと正解(ラベル)のペアを用いて学習を行う手法で,回帰や分類などのタスクに適用される.回帧分析では,ある変数から別の変数を予測するためのモデルを構築する.線形回帰は最も基本的な手法で,変数間の関係を直線で表現する.より複雑な関係を扱う場合は多項式回帰が用いられる. 分類は,データを既知のカテゴリーに分類する技術である.多クラス分類は3つ以上のカテゴリーを,二クラス分類(判別)は2つのカテゴリーを扱う.決定木は,データの特徴に基づいて段階的に分類や予測を行う手法で,直感的な理解がしやすい. 機械学習モデルの学習プロセスでは,アルゴリズムがデータから規則性やパターンを発見し,モデルを構築する.重要な概念として汎化がある.これは,訓練データを基に学習し,未知のデータも適切に処理する能力を指す. Pythonは機械学習やデータ分析で広く使用されているプログラミング言語である.初学者向けには,TrinketなどのオンラインツールがPythonプログラミングの練習に活用される. 機械学習は,データ駆動型学習,パターン認識,自動化,予測など多岐にわたる分野で応用されている.これらの技術は,製造プロセスの最適化,顧客サポートの自動化,販売予測など,様々な実用的なタスクに活用されている.
演習
演習1.多項式回帰
https://trinket.io/python/f430c55eba59
https://trinket.io/python/8067a00f4938
演習2.多項式回帰の観察
https://trinket.io/python/f24bf28125a9
演習3.Trinket による色付き散布図
https://trinket.io/python/b0a410c9d8c2
演習4.分類のモデル
https://trinket.io/python/918ff17a9ad9
演習5.分類モデルの観察
https://trinket.io/python/cd9fe4c24453
演習6.決定木
https://trinket.io/python/37d6744c8013
【関連する外部サイト】
trinket: https://trinket.io/
キーワードとその説明文
- 機械学習: コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.データ内のパターンや関係性を自動で抽出し,人間が設定しなければならなかったルールを自動生成する能力を持つ.
- 教師あり学習: 入力データと正解(ラベル)のペアを用いて学習を行う機械学習の手法である.回帰や分類などのタスクに適用され,新しいデータに対して予測や分類を行うことができる.
- 回帰分析: ある変数(説明変数)から別の変数(目的変数)を予測するための統計的手法である.機械学習では,データの関係性を数学的モデルで表現し,将来の値を予測するのに使用される.
- 線形回帰: 回帰分析の中で最も基本的な手法で,説明変数と目的変数の関係を直線で表現する.例えば,y = mx + b の形式で表される単純な関係性を扱う.
- 多項式回帰: 線形回帰を拡張した手法で,より複雑な非線形の関係を表現できる.例えば,y = ax² + bx + c のような2次関数や,より高次の多項式を用いてデータの関係性をモデル化する.
- Irisデータセット: 機械学習の分野で広く使用される有名なデータセットである.3種類のアヤメの花の特徴(がく片と花弁の長さと幅)を記録した150個のサンプルから構成されている.
- 分類: データを既知のカテゴリーに分類する教師あり学習の一種である.入力データの特徴を基に,そのデータがどのカテゴリーに属するかを予測する.例えば,メールのスパム判定などに利用される.
- 多クラス分類: 3つ以上のカテゴリーにデータを分類する手法である.例えば,手書き文字認識では0から9までの10個の数字(クラス)に分類する.
- 二クラス分類(判別): データを2つのカテゴリーに分類する手法である.例えば,メールがスパムであるかそうでないかを判断するような場合に使用される.
- 決定木: データの特徴に基づいて,段階的に分類や予測を行う手法である.木構造を用いて,各ノードで質問を行い,答えに応じて枝分かれしていく.例えば,果物の特徴から種類を判断するのに使用される.
- 学習: 機械学習において,アルゴリズムがデータから規則性やパターンを発見し,モデルを構築するプロセスである.このプロセスを通じて,コンピュータは与えられたタスクの性能を向上させる.
- 汎化: 訓練データを基に学習し,未知のデータも適切に処理する能力である.機械学習モデルが新しいデータに対しても正確な予測や分類を行えるようになることを指す.
- Trinket: オンラインのPython,HTML等の学習サイトである.ブラウザで動作し,プログラムの作成・実行・共有が可能である.機械学習の基礎を学ぶための練習用ツールとして利用される.
- Python: 多くの人々に利用されているプログラミング言語の1つである.読みやすさ,書きやすさ,幅広い応用範囲が特徴で,機械学習やデータ分析において広く使用されている.
- データ駆動型学習: 大量のデータを用いて,コンピュータが自動的にパターンや規則性を学習する方法である.従来の人間によるルール設計とは異なり,データから直接知識を獲得する.
- パターン認識: データ内の規則性や特徴的な構造を識別する技術である.機械学習において,画像認識,音声認識,自然言語処理などの分野で広く応用されている.
- 自動化: 機械学習によって獲得された知識や能力を用いて,人間の介入なしにタスクを実行する技術である.例えば,製造プロセスの最適化や顧客サポートの自動化などに応用される.
- 予測: 過去のデータや現在の状況に基づいて,将来の出来事や値を推測する技術である.機械学習では,回帰分析や時系列分析などを用いて,販売予測や株価予測などを行う.
- 特徴抽出: 生のデータから有用な情報や特徴を抽出する過程である.機械学習モデルの性能向上や効率的な学習を可能にする重要な前処理ステップである.
- 訓練データ: 機械学習モデルを訓練するために使用されるデータセットである.入力データと対応する正解(ラベル)のペアから構成され,モデルはこのデータを用いてパターンを学習する.
4. 機械学習の基礎② ー 教師あり学習編
【概要】 機械学習は,コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.その中で,教師なし学習は,ラベルのないデータからパターンや構造を発見する手法である.クラスタリングとオートエンコーダは,教師なし学習の代表的な手法である. クラスタリングは,似た特徴を持つデータをグループ化する.例えば,K-means法では,データポイントを最も近い中心点に割り当てる.これは顧客データ分析やマーケティング戦略立案などに応用される. オートエンコーダは,データの圧縮と再構成を行い,重要な特徴を自動的に学習する.これはノイズ除去,異常検知,新データ生成などに利用される.さらに発展した形として,変分オートエンコーダー(VAE)やGANs(敵対的生成ネットワーク)があり,画像生成AIなどの創造的なAI応用の基盤となっている. 機械学習の重要な特性として汎化がある.これは訓練データを基に学習し,未知のデータも適切に処理する能力である.また,自己学習や強化学習のような,AIが自ら学習を進める手法も開発されている. これらの技術は,Pythonなどのプログラミング言語を用いて実装され,trinketのようなオンライン学習プラットフォームで学ぶことができる.機械学習は,データ分析,画像処理,ゲーム,ロボット制御など,幅広い分野で応用されており,今後もAI技術の発展に大きく貢献すると期待されている.
演習
演習1.散布図
https://trinket.io/python/1445696bc0e0
https://trinket.io/python/afe76032829d
演習2.クラスタリング
https://trinket.io/python/93ab2fb15488
参考
この授業で紹介する「K-meansクラスタリング」の技術について, ビジュアルに体験できるサイト
このガイドを理解しました。K-meansクラスタリングを視覚的に体験できるウェブサイトの使い方を説明していますね。以下に日本語で要約します:
- サイトにアクセスします。
https://www.naftaliharris.com/blog/visualizing-k-means-clustering/
- データセットとして「Randomly」(ランダム)を選択します。
- 分布タイプを選びます。例として「Gaussian Mixture」(ガウス混合)があります。好みのものを選べます。
- 「Add Centroid」(中心点を追加)ボタンをクリックして、結果を確認します。この操作を繰り返し、様子を観察します。
- やり直したい場合は「Restart」(再スタート)ボタンをクリックします。
このツールを使うことで、K-meansクラスタリングのプロセスと結果を視覚的に理解できます。
演習3.オートエンコーダ
https://trinket.io/python/23a86bc86ce8
【関連する外部サイト】
キーワードとその説明文
- 機械学習: コンピュータがデータを使用して学習することにより知的能力を向上させる技術である.データからパターンや関係性を自動で見つけ出し,人間が設定しなければならなかったルールを自動生成できるようになる.他の方法では難しかった課題でも,機械学習を用いることで解決策や新たな視点を得られる可能性がある.
- Python: 多くの人々に利用されているプログラミング言語の1つである.読みやすさ,書きやすさ,幅広い応用範囲が特徴である.シンプルな文法を持ち,直感的に理解しやすい.例えば,printで簡単に出力でき,ifやelseで条件分岐,forやwhileで繰り返し(ループ)を実現できる.
- trinket: オンラインのPython,HTML等の学習サイトである.ブラウザで動作し,有料機能と無料機能がある.自分が作成したPythonプログラムを公開し,他の人に実行してもらうことが可能である.標準機能に加え,matplotlib.pyplot,numpy,processing,pygalなどの外部ライブラリがインストール済みである.
- 教師なし学習: ラベルのないデータを使用して,パターン,構造,隠れた特徴や関係性を見つける機械学習の手法である.教師あり学習と異なり,ラベル(正解,目標)なしに学習を行う.人間が気づいていない複雑なパターンを発見する可能性がある.例として,顧客の購買パターン分析や異常検知システムがある.
- クラスタリング: 似た特徴を持つデータをグループ化する教師なし学習の一種である.クラスタ内のデータポイントは互いに近く,異なるクラスタのデータポイントは離れている.クラスタの個数は様々(2,3,4,5,…)に設定可能である.顧客データ分析,マーケティング戦略立案,Eコマースサイトでの商品カテゴリー自動分類などに応用される.
- オートエンコーダ: 元のデータを圧縮し,再構成する教師なし学習の一種である.元のデータの最も重要な特徴を自動的に学習し,「エンコード表現」を得る.データ圧縮,ノイズ除去,特徴抽出,新データ生成などに応用される.例えば,古い写真や音声録音のクリーニング,製造ラインでの不良品検出,情報検索,顔画像生成などに利用される.
- 汎化: 訓練データを基に学習し,未知のデータも適切に処理する能力である.機械学習の大きな特徴の1つである.例えば,訓練データ(入力9,11,12,14に対する正解500,500,1000,1000)から学習し,未知の入力(7,8,10,13,15,16)に対しても適切な予測(500,500,500,1000,1000,1000)を行うことができる.
- K-means法: 主要なクラスタリング手法の1つである.中心点をランダムに初期化し,各データポイントを最も近い中心点に割り当てる仕組みである.他の主なクラスタリング法には,階層的クラスタリング,DBSCAN(密度ベース)などがある.クラスタ数を指定して実行し,データポイントを分類していく.
- モール顧客データ: AI学習に適する架空のデータセットで,200名分のデータを含む.顧客ID,年齢,性別,年間収入,支出スコア(行動基準)から構成される.主なタスクとしてクラスタリング実践や顧客の状況把握があり,マーケティング戦略立案,顧客行動分析,市場分析などの応用分野で利用される.主にデータサイエンス・マーケティング分析の学習者が使用する.
- 支出スコア: 0から100の値で,各人の支出しやすさを示す指標である.低いスコア(1-20)は消費が少なく,中程度のスコア(40-60)は平均的な消費,高いスコア(80-100)は消費が多いことを示す.購買頻度,購買金額,購入商品の種類,ポイントプレゼント等への参加度,特別セール等の行事への反応度などから算出される.
- 異常検知: 正常なデータと異常なデータを区別する技術である.クラスタリングの応用例の1つであり,通常,中心に集まっているデータを正常とみなす.オートエンコーダを用いた異常検知では,正常データとの再構成誤差を利用して不良品検出などを行う.製造ラインでの品質管理やセキュリティシステムでの不正アクセス検知などに応用される.
- 変分オートエンコーダー (VAE): オートエンコーダの一種で,潜在変数に確率分布を導入し,より柔軟なモデルを実現する.通常のオートエンコーダーと比べて,生成されるデータの多様性が高く,より自然な出力が得られる.画像生成タスクなどで広く使用され,新しいデータの生成や補間に優れている.
- GANs(敵対的生成ネットワーク): 生成器と識別器が競争しながら学習を行う教師なし学習の手法である.生成器は偽のデータを作成し,識別器は本物と偽物を見分けようとする.この競争を通じて,非常に高品質な偽のデータを生成できるようになる.画像生成,スタイル変換,超解像など,様々な分野で応用されている.
- 画像生成AI: 教師なし学習の発展形であり,複雑なパターンの学習と生成を行う.主に変分オートエンコーダー(VAE)やGANsを使用する.創造的なAI応用の基盤技術であり,アート(スタイル変換,新しい芸術作品の創造),ファッション(新しいデザインの生成),製薬(新薬候補分子の設計)など,様々な分野で応用されている.
- 自己学習: AIが自己対戦や他のAIとの対戦を繰り返すことで,その結果から学習を行う機械学習の手法である.訓練データの追加なしで,AI自体が学習を進める.例えば,AlphaZeroは4時間の学習で最強のチェスプログラムに勝利し,OpenAIは数ヶ月の学習でオンラインゲームDota 2の人間チャンピオンに勝利した.
- 強化学習: フィードバック(報酬やペナルティ)に基づく学習手法である.環境との相互作用を通じてデータを収集し,長期的な最適化を目指す.即時の報酬だけでなく,長期的なフィードバックをもとに学習を行い,動的な環境に対応できる.ゲーム,ロボット制御,対話AIなど,様々な分野で応用されている.