試せる45!人工知能アルゴリズム全集

書籍情報

発売日 : 2023年05月02日

著者/編集 : 牧野浩二

出版社 : CQ出版

発行形態 : 単行本

書籍説明

内容紹介

たくさんの実用的な人工知能アルゴリズムを集めました.全てのアルゴリズムの効果を,動かしながら確認できます.

目次

本書は『Interface』誌·連載「人工知能アルゴリズム探検隊」および,『Interface』誌に掲載した記事を編集したものです.

☆目次

☆第1部 アルゴリズムを試す準備

●第1章 アルゴリズムを知っていた方が良い理由
知らないとこうなる
本書のロードマップ
コラム AIマップβ2.0をもとに人工知能について知る

●第2章 Rのインストールとプログラムの動かし方
インストールする
起動してプログラムを実行してみる
コラム Rをさらに便利にするR Studioの導入

●第3章 Processingのインストールとプログラムの動かし方
特徴…ウィンドウ上に図形を簡単に描画できる
インストールする
起動と使い方
サンプル・プログラムを動かす
プログラムの構成

☆第2部 いろいろな人工知能

●第1章 パターン認識でよく使われる「サポート・ベクタ・マシン」
パターン認識向きサポート・ベクタ・マシンの仕組み
実験…きのことたけのこを見分ける!
プログラミング

●第2章 ニューラル・ネットの基本学習法「バックプロパゲーション」
ニューラル・ネットワークの基礎知識
バックプロパゲーションによる学習手順
実験…お菓子の音を学習して聞き分ける
認識率向上テクニック

●第3章 パラメータから分類「主成分分析」
原理
主成分分析の計算方法
主成分の計算はRで
応用例…けん玉の技能向上に

●第4章 多数データのグループ分け「クラスタ分析」
クラスタ分析の特徴
処理のイメージ
処理の流れ
体験1…まずは練習用データで
体験2…動物データで
体験3…前回のけん玉データで

●第5章  少数データを丁寧に分けられる「階層型クラスタ分析」の基本原理
階層型クラスタ分析の特徴
使い方のイメージ
処理の流れ
体験1…まずは練習用データで
体験2…動物データで

●第6章 少数データ分類向き「階層型クラスタ解析」を実験で試す
コラム 樹形図作りの肝…グループ間の距離の求め方あれこれ

●第7章  答えを学習してなくても特徴を予測できる「自己組織化マップ」
体験準備…Rのインストール
体験1…動物を分類
処理の流れ
プログラム
使いこなしたい!パラメータをあれこれ変えてみる

●第8章 「自己組織化マップ」を使った成功・失敗判定の実験
けん玉データで経験者,初心者,未経験者を分類
コラム 人工知能×医療の研究…歩き方の良しあしをSOMで判定する

●第9章  自己組織化マップを使ってセンサ・データをもとに人の触り方を推定する
ハードウェア
ソフトウェア構成
自己組織化マップのデータ解析手順
実際に面接触センサのデータを計測し自己組織化マップで分類してみる
コラム 自己組織化マップのアルゴリズム

●第10章 迷路探索やゲームで試す「強化学習」
機械学習における強化学習の位置づけ
半教師付き「強化学習」の概念
実習1…迷路探索のトライ&エラーを経てAIが正解を見つけられるようになる
実習2…AI同士が対戦することでAIが成長する

●第11章  PICマイコンで試せる人工知能記憶装置「アソシアトロン」
なんとなーく思い出せる人工知能記憶装置アソシアトロン
実験でやること…PICマイコンで記憶してなんとなく思い出させる!
アソシアトロンの記憶と思い出しのメカニズム
まずはアソシアトロンの動きを見てみる
PICマイコン・アソシアトロン人工知能装置の作り方

☆第3部 小型ロボなどの移動体向け

●第1章 1番簡単な「If-Thenルール」
自走ロボなどに使えるAIアルゴリズム
ターゲット:自走ロボ
「If-Thenルール」のあらまし
シミュレーションの準備
プログラム1…ロボの基本動作や表示を行うベース
プログラム2…If-Thenルールのアルゴリズム
動作確認

●第2章 パラメータを変えながら答えに近づく「山登り法」
山登り法の動作イメージ
もうちょっと詳しく見てみる
シミュレーションの準備
プログラミング
シミュレーション結果

●第3章  パラメータを交配させて生物のように進化させる「遺伝的アルゴリズム」
遺伝的アルゴリズム
お題…ナップサック問題
解き方
準備
プログラミングの方針決め
プログラミング
シミュレーション結果
コラム1 ナップサック問題で一般によく使う「動的計画法」
コラム2 親の選択方法
コラム3 遺伝子は2カ所でも3カ所でも切れる

●第4章  過去も加味してベスト行動を決める「拡張版遺伝的アルゴリズム」
本章で扱う自走ロボ
アルゴリズム
例題…関数の最大値を探す
自走ロボで試す
ステップ1…基礎検討:どのように遺伝的アルゴリズムを組み込むか
ステップ2…プログラミング
ステップ3…結果:過去情報を使った方が速く走行できる
おまけ…結果を見やすくする

●第5章  対戦ゲームや自動運転AIの基本アルゴリズム「Qラーニング」
進化アルゴリズム「Qラーニング」
Qラーニングのお約束の数式
基本原理
体験してみる
動作のキモとなるパラメータ「状態」「行動」「報酬」
プログラム
シミュレーション結果

●第6章 イライラ棒でQラーニングの実験
ディープ・ラーニングとの違い
動かして合点
迷路を例に仕組みを解説
プログラムの作り方(シミュレーション編)
実際のロボットで実行
実行結果

●第7章 突然変異も起こせる「遺伝的プログラミング」
遺伝的プログラミングの発展形
木構造表現
進化の過程
得意技…関数の同定
遺伝子を表すクラスを決める
遺伝子のつながった構造を作る
遺伝子の計算
プログラミング
シミュレーションの準備
シミュレーション結果

●第8章 自律移動車が「正確な位置&地図」を推定する「SLAM」
これからの自走ロボで重要なこと…「正確な位置と地図を知る」
これまでの自分の位置検出方法
動きながら位置&地図推定を行う「SLAM」
SLAMをシミュレーションで確かめる
SLAMの肝…「パーティクル・フィルタ」の処理
コラム 実際のSLAMではGPSも組み合わせる

●第9章 正確な位置&地図推定「SLAM」のプログラム
紹介するSLAMプログラム
プログラムの全体像
主な関数の処理
シミュレーション結果

☆第4部 生命の動きをシミュレーション

●第1章 人工知能とは違うアプローチ「人工生命」
人工知能と同じようなところを目指している「人工生命」とは
実験すること
応用のポテンシャル
鳥の群れアルゴリズム
プログラミング

●第2章 「巡回セールスマン問題」の最短ルートをアリのエサ探しから解く
重複なく最短ルートで回る「巡回セールスマン問題」
アリの行動をベースに最適なルートを見つける
プログラム

●第3章 人工生命で群れを動かす
基本となるアリのエサ探しのルール
群れの動きを作るプログラム
実行したときのアリの動き
いじってみる

●第4章 生命の誕生と死をコンピュータの中にモデル化する
とにかく神秘的な生命の誕生と死をモデル化した「ライフ・ゲーム」
生死のルール
自作の前に…生物が多く紹介されているサイト
ライフ・ゲームを作る

●第5章 社会科学の基本問題「囚人のジレンマ」
社会科学の基本問題「囚人のジレンマ」のルール
さまざまな応用ができる
損か得かを整理する
シミュレーション
シミュレーションその2…新しい戦略を入れる例題

●第6章  社会科学のコンピュータ実験…囚人のジレンマで作る村社会
社会科学の基本問題「囚人のジレンマ」の応用&戦略
群集心理のシミュレーション
プログラム
自分であれこれ試してみる

☆第5部 センサ・データを例に分類アルゴリズムを試す

●第1章 単純パーセプトロンで「紙幣」の分類に挑戦
お札の認識方法
こんな感じのお札分類器を過去に作った
分類のアルゴリズム…パーセプトロン
お札の分類をシミュレーションで体験
コラム1 線形分離できない問題とは
コラム2 簡単な数値例でパーセプトロンを計算してみる

●第2章  紙幣の種類判定データの妥当性を統計的「t検定」で確かめる
統計的解析手法「t検定」とは
Excelでt検定入門①…若者の足の長さ
Excelでt検定入門②…桃の重さと産地
ちょっと掘り下げ…「仮説検定」とは
紙幣の種類判定データの妥当性のt検定
実験環境
実験
コラム 棄却される領域が異なる片側検定と両側検定

●第3章 分かりやすい2分割を繰り返す分類方法「決定木」
分類方法「決定木」とは?
決定木による分類を試す
決定木分類アルゴリズム
Excelで決定木計算の詳細を見てみる
お札の分類に使ってみる

☆第6部 ディープ・ラーニングと自走ロボ

●第1章 画像ディープ・ラーニング自走ロボ・シミュレーション
やること
おさらいディープ・ラーニング
ディープ・ラーニングをロボットへ適用することの難しさ
実験環境を作る
シミュレータを作る
学習用の画像データを集める
学習
学習済みモデルを使ってロボット自走シミュレーション

●第2章 AI自走ロボに別の学習データを追加で教える
本章でやること
複雑なラインに沿って走れるようになるためのルールの検討
できるようになること
ロボットに組み込むプログラム
シミュレータを使う
開発環境の準備
シミュレーション①…ロボットを動かす
シミュレーション②…学習のためのデータセットを作る
シミュレーション③…学習済みモデルを生成する
シミュレーション④…学習済みモデルを利用して動く
動作確認

●第3章  強化学習にディープ・ラーニングをハイブリッドする「深層強化学習」
深層強化学習の強み
元になる強化学習とは
強化学習に深層学習をハイブリッドする「深層強化学習」

●第4章 学習しながら自走する深層強化学習ロボ
深層強化学習シミュレーション条件
開発環境&プログラム
走行シミュレーション
条件に合わせてプログラムを変更する

☆第7部 アンケート集計で試すデータの統計手法

●第1章 決定木の拡張版「ランダムフォレスト」
決定木がベース
ランダムフォレストとは
実験①…決定木で分類する
実験②…決定木で回帰する
実験③…ランダムフォレストに拡張

●第2章 アンケート調査のデータ分析「クロス集計」
アンケート調査のデータ分析に使える「クロス集計」の特徴
アンケート手法の基礎知識
今回分析するアンケート
アンケート結果のクロス集計
アンケート作り入門
コラム アンケートに答えてもらうためのテクニック

●第3章 アンケート調査から人の感情を調べる「SD法」
アンケート調査「SD法」のあらまし
アンケート調査をSD法で分析
分析に必要なグラフを作る

●第4章  アンケート調査から共通要因の大小を求める「因子分析」の原理
データの傾向が探れる因子分析
因子分析のイメージ
因子分析を簡単な計算でイメージ

●第5章 統計解析ソフトを使ったアンケートの因子分析
統計解析環境Rの準備
まずは成績表サンプルで動かしてみる
共通因子数を求める
もうちょっと具体的に…山梨県印象アンケートの因子分析

☆第8部 要素の結びつきをもとにウィルス感染をシミュレーション

●第1章 ネットワーク分析手法「スモール・ワールド」
「世間は狭い」を理論的に証明したい
仕組み
スモール・ワールドの作り方
グラフを作る
病気の感染との関係

●第2章  人と会わない方が良い理由「スケール・フリー・ネットワーク」
あらまし
応用例
他のネットワークとの違い
スケール・フリー・ネットワークの作り方
グラフを作る
病気の感染との関係

●第3章 感染シミュレーション
感染シミュレーションのイメージ
感染モデルの作り方
シミュレーションの準備
プログラム
シミュレーションの実行
コラム アニメーションの保存

☆第9部 「音」認識人工知能の作り方

●第1章 良い音データの集め方
人工知能で認識できそうな音の世界
良い音データ集めに必要なもの
「音」認識人工知能で分類するターゲット
「音」認識人工知能を作る準備
「音」認識人工知能をまず動かす①…お菓子の種類判別
「音」認識人工知能をまず動かす②…話者の認識
「音」認識人工知能をまず動かす③…環境音
音の判定に用いた人工知能アルゴリズム
コラム 音データのフォーマット

●第2章 音から物を判別する人工知能の作り方
正答率の高いマイクの選び方
正答率の高い音の出し方
いろいろなマイクを組み合わせて学習させたときの正答率への影響
苦手な音をあえて外して正答率を上げる効き目
学習&判定のプログラム
データは圧縮すると正答率が下がるか?
良い「音」認識人工知能が育つ音データ作りのコツ
話者認識人工知能のうまい育て方
正答率が高まる音声・言葉の選び方
音素バランスが取れている文章/取れていない文章の違い
学習&判定
無音部のありなしの正答率への影響
声の大きさで正答率は変わるか

●第3章  ウェブから集めた学習用データを使った生活音認識人工知能の作り方
音データの入手
学習
判定

著者情報

牧野, 浩二, 1975-
牧野浩二