ae-1.人工知能(AI)の基礎と応用:
概要,種類,活用分野,およびプログ
ラミング入門
1
金子邦彦
AI演習)(全15回)
https://www.kkaneko.jp/ai/ae/index.html
自己紹介
2
金子邦彦 (かねこくにひこ)(福山大学工学部)
【研究領域】
データベース応用、データベース基盤技術、高度データ利用
【実績】
・学術論文等:27編、査読付き国際会議:76編、その他講演多数
・教科書等:3
・授業担当経験:のべ24科目
・科学研究費:のべ11件 概算のべ数千万円 他大学との共同多数
・共同研究、受託研究など:のべ10件 概算のべ一億円 国際共同
研究あり
・学部生、大学院生の指導経験多数
人工知能画像処理3次元コンピュータグラフィックス(VR含む)
Webシステム知的システム社会システムの成功には、
データベースが必要 という気持ちで進めています
詳しくは http://www.kkaneko.jp/index.html
AIの基礎知識と導入
人工知能AI,コンピュータに人間のような知
な振る舞いをさせる技術)に関する基礎知
について学ぶ.
今回は,AIの基本概念,種類,活用分野,プログ
ラミングの基礎を理解する.
AIの基本的な仕組みを学び,実践的なスキルを身
につけることを目指す.
3
人工知能(AI)の学習のための指針
1. 実践重視 AIツールを実際に使用し、機能に慣れる
2. エラーを恐れない 実行においては、エラーの発生の可
能性がある.エラーを恐れず,むしろ学習の一部として
捉えるポジティブさが大切.
3. 段階的学習:基礎から応用へと段階的に学習を進め,AI
の可能性を前向きに捉える
4
学びへのアドバイス
1. 簡単なことからスタートし、段階的に複雑な内容
2. 自分自身の成長(さまざまな体験、知識の深まり、スキ
ルの向上、視野の広がり)を感じとる
3. 大事な基礎繰り返し学習する
4. 知識を増やすため、パソコン操作を辛抱強く続ける
5. 難しい内容へのチャレンジ精神を持つ
5
①多様な技術の理解
②コンピュータとプログラミングの基礎知識
AIとプログラミングの深い関連性
これらの要素を総合的に理解し,技術者とし
ての能力を高め,新しい発見やアイデアの創
出につなげることを目指す.
6
目標
1-1. AI入門
7
AI 入門
AI は、コンピュータが人間のような知的能力を持つことを目
指す技術
AI の3要素
知能:思考や判断などの能力
知識:情報を収集・処理する能力
学習:知的な能力が上達できる能力
これらの要素が組み合わさることで,高度な処理が可能となる.
8
人工知能の応用例
9
顔検知、顔識別
合成
画像のセグメンテーション
Webブラウザで翻訳を行う
Mate Translate (Web ブラウザ
Firefox のアドオン)
人工知能(AI)の応用分野の広がり
AIは私たちの生活や仕事を大きく変革する
人間の言葉、人間の声の処理
例:対話型AI(チャットボット)、自動翻訳サービス
視覚情報処理
例:物体検知(自動運転車の障害物検知など)
データ分析と予測
例:顧客行動予測
自動化、最適化
例:工場の最適化、スマートホーム
合成
例:画像生成、画質改善、顔の3次元化
10
AI の利点
24時間365日の稼働
大量データの高速処理能力
人間が見落としがちな細かいパターンの検出能力
反復作業の効率化
11
AI の課題
《欠点》
創造性や柔軟性の限界
予期せぬ状況への対応の難しさ
倫理的判断の必要性
データ品質による結果への影響
12
1-2. AIの応用分野と可能性
13
AIによる物体認識,人物認識
物体認識技術
物体検出
セグメンテーション(画素単位の認識)
人物認識技術
顔検出
顔のキーポイント(目,鼻,口など)の検出
顔識別(顔からの人物特定)
表情の自動判定
目の動きの追跡
人体姿勢推定
これらの技術は,セキュリティシステムやヒューマンイン
ターフェースなどに活用されている
14
物体認識
15
車両の場所向き(前なのか後ろなのか)の検出
物体認識とセグメンテーション
人間の「目」の一部機能をコンピュータで再現.
画像の中のオブジェクトを,人工知能が発見・検知
16
元画像
人工知能による読み取り結果
(DeepLabv3+ を使用)
自動でのぼかし
17
人工知能は,手を自動でぼかし,プライバシ保持などに役
立てることができるようになってきた
HypoX64/DeepMosaics を使用)
顔検出
18
顔検出(顔の位置,大きさの情報)
顔検出
19
群衆の数のカウント
(FIDTM を使用)
元画像
目の動きの追跡
20
目の動きの読み取り
Pupil Tracker を使用)
顔のキーポイント
21
顔のキーポイント(目、鼻、
口など)の読み取り
元画像
顔のキーポイント
22
キーポイント5個
を線で結ぶ
キーポイントを手
掛かりに,眼鏡と
髭をつける
顔識別(顔からの人物特定)
23
younes
表情の自動判定などを行うオンラインサービス
元画像
24
画像分類の結果
URLhttps://cloud.google.com/vision/docs/drag-and-drop
表情の自動判定
25
表情の自動判定
「驚き (Surprised)」と判定
されている
人体姿勢推定
26
人体の姿勢を読み取り
OpenPose を使用)
人体姿勢推定
人体の姿勢を読み取り
27
28
29
人体の姿勢を読み取り
3次元情報処理と合成技術
3次元情報処理と合成
写真からの顔の3次元化
複数の写真からの3次元データの合成
人間の言葉の合成
対話型AI(チャットボット)
翻訳
30
写真からの顔の3次元化
31
写真からの顔の3次元化
3DFFA を使用)
複数の写真からの3次元データの合成
32
様々な方向から撮影した写
3次元データをAIで合成
対話型AI(チャットボット)
文章の翻訳、要約のほか、相談や自由なアイデア出しに
自動翻訳サービス
34
DeepL URL: https://www.deepl.com/ja/translator
現実には存在しないビデオの合
35
写真 ビデオ
フェイクビデオ
36
AIの可能性
生産性の向上:人間がより創造的な仕事に集中できるよう
科学技術の発展:膨大なデータから人間には見つけにくい
パターンを発見、新薬の開発や疾病の早期発見、農業の発
展など
コミュニケーションの壁の除去:言語の壁などを超えたコ
ミュニケーションの支援
37
AIの社会的影響と責任ある活用
人間主導の判断
AIはあくまで人間を支援する道具.最終的な判断は人間.
個人情報の適切な取り扱い
AIは人間が運用している.AIが危険というよりも,AIの運
営者が危険な場合がある.
偽情報への対策
AIの悪用により偽情報の生成が極めて容易に.複数の信頼
できる情報源を参照する習慣が大切
38
ここまでのまとめ
AIの主要応用分野
言語・音声処理(翻訳、チャットボット)、視覚情報処理
(物体識別、顔認識)など
AIがもたらす可能性
生産性向上、科学技術の飛躍的発展、コミュニケーションバ
リアの低減
AIの責任ある活用
個人情報の慎重な取り扱い、偽情報への警戒と情報確認
39
演習1.
さまざまなAI
ページ36~40
トピックス
翻訳サイト DeepL による翻訳
AIと将棋対戦
AIを用いて言葉を絵に
40
1.翻訳サイト DeepL による翻訳
41
翻訳サイト DeepL
https://www.deepl.com/
右側に日本語の文章を
入れると
左側に翻訳結果が出る
2. AIと将棋対戦
①「ぴよ将棋」のURL WEB ブラウザで開く
https://www.studiok-i.net/ps/
対局設定し、対戦開始
本格的に楽しみたい場合には「ぴよ将棋」のスマホアプ
リをお薦めします
42
さまざまなAIとの対戦ゲーム
ぴよ将棋 https://www.studiok-i.net/ps/
ブラウザ上で動作する無料の将棋ゲーム。スマホアプリ版もある。
様々な難易度のAIと対戦可能で、初心者から上級者まで楽しめる
将棋ウォーズ https://shogiwars.heroz.jp/
ブラウザ版とスマホアプリ版があり、AIとの対戦や他のプレイ
ヤーとの対戦が可能。登録必要。初心者から上級者まで楽しめる。
Egaroucid for WEB(オセロ https://reversi.simaenaga.net/
ブラウザで動作するオセロ。Windows 版もある。シンプルなイン
ターフェース。登録不要でプレイ可能。
lichess.org(チェスhttps://lichess.org/
無料でオープンソースのチェスプラットフォームです。AIとの対
戦、オンライン対戦、パズルなど様々な機能。
囲碁 - Online-Go.com https://online-go.com/
ブラウザベースの囲碁プラットフォームで、AIとの対戦やオンラ
イン対戦が可能。登録必要。初心者向けのチュートリアルもある。
43
3.AI を用いて言葉を絵に(Craiyon を使用)
Craiyonのウェブサイトにアクセス
https://www.craiyon.com/
ページの中央にあるテキストボックス(プロンプト入力
欄)を見つける
英語でプロンプトを入れる
内容を英語の単語や文章で。例: A cat riding a bicycle in spac
Draw をクリック
しばらく待つ(1から3分以上)
③、④を繰り返す
44
プロンプトの作成、
翻訳を ChatGPT に頼むこと
も可能
人工知能に期待される役割
人間の仕事の補助や代行。人間との協働。
人工知能は、単純なタスクや反復的な作業など、人間にとっ
て退屈な仕事を代行できる。
迅速な判断
膨大な量のデータの処理、高速な計算が得意。人間のミスを
減らすことにつながる。
新たな創造性や価値の創出の可能性
人間の知覚を超えたセンサー、情報ネットワークの能力を組
み合わせて、新たな分野の開拓や価値の創出が可能に。
45
1-3. 人工知能の種類
46
人工知能の種類
47
ルール,知識による人工知能
人間がルール,知識コン
ピュータに与えることによ
る人工知能
機械学習
コンピュータデータを使用
して学習することより知的能
力を向上させる技術
人工知能
(知的なITシステム)
48
機械学習は,コンピュータデー
を使用して学習することにより
知的能力を向上させる技術
情報の抽出:データからパター
ンや関係性を自動で見つけ出す
能力を持つ
知的なタスクの実行:予測,分
類などの知的なタスクを実行
機械学習の基本
機械学習における訓練データの役割
訓練データ
49
学習
学習者
3種類に分類済み
訓練データは,機械学習の学習に使用されるデータある.
データを用いた学習により,コンピュータは分類や予測な
どの知的な能力を獲得る.
例:画像分類では分類済みの大量データを使用する.
機械学習の学習プロセス
50
②学習の実行:
データを用いてパターンを学習
データを用いて学習を
行う.学習の結果、文
字認識の能力を獲得.
プログラム
データの準備:
目的に応じた訓練データを準備
③タスクの実行:
新しいデータを処理
51
機械学習の特徴
データを用いて知的能力を向上
自動でデータのパターンを抽出
さまざまなタスクを自動実行
応用事例
画像理解、自然言語処理、予測
など多数
機械学習の定義
訓練データを用いて学習し、その結
果として知的能力が向上
訓練データの追加により、さらに
的能力が向上する可能性
機械学習まとめ
1-4. プログラミングの基本
と意義
52
53
コンピュータは,プログラム
に従って動作
プログラムは,コンピュータ
に指示を出し,所定の作業を
遂行させる
コンピュータとプログラム
54
プログラムを設計し作成する
プロセス(プログラミング)
は,創造的な活動
アイデアを形にできることが,
プログラミングの魅力
プログラミング
プログラムとアプリケーション
プログラムが動作し,アプリケーションの機能を実現
55
Web ブラウザ
ワープロ
(マイクロソフト・ワード)
プログラムは,コンピュータの動作をコント
ロール
56
Python 言語を使って
ニューラルネットワーク
を作成.AIシステムを構築
プログラムは,コンピュータの動作を細かくコントール
プログラムは,コンピュータ間の連携にも
役立つ
57
利用者
コンピュータ
利用者
サーバは,サービスを提供する
ITシステム
ネットワーク
コンピュータ同士の接続でもプログラムが必要.
コンピュータ
コンピュータ
プログラミングの目的
プログラムは,コンピュータに指示を出し,
所定の作業を遂行させる
複雑な作業も自動化し,効率化することが可
58
Python プログラム
ソースコード
プログラム
実行結果
59
プログラムの内容によって,
コンピュータさまざまな作
業を実行できる
プログラムを利用すること
で,多くの作業を自動化でき
プログラムで行った作業を
いつでも再現できる
プログラムは柔軟性がある.
変更により,プログラムの
作を簡単に調整できる
プログラミングの利点
プログラミングの基本と意義まとめ
コンピュータは,プログラムの指示に従って動作
るものである.
プログラミングは,創造的な活動としてプログラム
を設計・作成することである.
プログラムは,コンピュータの動作を詳細にコント
ロールする.
プログラムを活用することで,複雑な作業も自動化
が可能である.
プログラムは,作業の再現性柔軟な変更が可能
いう利点を持つ.
60
1-5. Python言語の特徴とプ
ログラミングの可能性
61
Python は多くの
人々に利用されてい
プログラミング言
の1つ
読みやすさ書きや
すさ幅広い応用範
が特徴
62
Python
Python 言語が広く使用されている理由
文法のシンプルさ
Python は,直感的で読みやすい文法
例えば、print で簡単に出力できる、if else 条件分岐for
while 繰り返し(ループ)
拡張性
多岐にわたる分野で利用が可能
例えば、関数やクラスを定義するため def class継承オブ
ジェクトの属性名と値を操作するため super vars などがある。
柔軟性
シンプルなスクリプトも、高度なプログラムも作成可能
オブジェクト指向の機能を持ち、__init__ self のようなキーワード
を使用してクラスを利用できる。
63
trinket
Trinket オンライン PythonHTML 等の学習サイト
ブラウザで動作
有料の機能と無料の機能がある
自分が作成した Python プログラムを公開し、他の人に実
行してもらうことが可能(そのとき、書き替えて実行も可
能)
Python の標準機能を登載、その他、次の外部ライブラリ
がインストール済み
matplotlib.pyplot, numpy, processing, pygal
64
trinket Python, HTML などのプログラムを書き実行できる
サイト
https://trinket.io/python/0fd59392c8
のように、違うプログラムには違う URL が割り当てられる
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
trinket でのプログラム実行
65
ソースコードの
メイン画面
実行結果
実行、STOP ボタン
66
ソースコードは,プログラミ
ング言語で書かれたプログラ
のもの
人間も読み書き編集できる
ソースコードにより,プログ
ラムの動作を理解し,必要に
応じて改変できる
ソースコード
演習.
Python プログラムの実行
67
trinket の次のページを開く
https://trinket.io/python/6c 652f1c2f
実行結果が,次のように表示されることを確認
68
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
trinket の次のページを開く
https://trinket.io/python/94d1563844
実行結果が,次のように表示されることを確認
69
実行が開始しないときは、「実行ボタン」で実行
ソースコードを書き替えて再度実行することも可能
実行、STOP ボタン
ボールが
壁に当たったら
反射する.
演習.
簡単なプログラムでも
さまざまなことが可能
70
71
trinket の次のページを開く
https://trinket.io/python/2b804ab19a
実行結果が,次のように表示されることを確認
オペレーティングシステム(コンピュータ)のタイマー
を利用.現在の日時が表示される
現在の日時
import datetime
now = datetime.datetime.now()
print(now)
72
trinket の次のページを開く
https://trinket.io/python/597e5771ff
実行結果が,次のように表示されることを確認
面積が 7 の正方形の一辺の長さ
import math
print(math.sqrt(7))
73
trinket の次のページを開く
https://trinket.io/python/4e3559f879
実行結果が,次のように表示されることを確認
半径 3 の円の面積は?
import math
print(3 * 3 * math.pi)
74
trinket の次のページを開く
https://trinket.io/python/bdcce27488
実行結果が,次のように表示されることを確認
三角形の2辺の長さが,で,その間の角度が60
度のとき,面積は (1/2) × 4 × 6 × sin(60)
import math
print((1/2) * 4 * 6 * math.sin(60 * math.pi / 180))
プログラミングの可能性
人間の力を増幅し、私たちができることを大幅に広げる
シミュレーション大量データ処理AI連携ITシステム
制作など、さまざまな活動で役立つ
プログラミングはクリエイティブな行為
さまざまな作業を自動化したいとき、問題解決したいとき
にも役立つ
論理的思考力の向上
問題解決能力の育成
デジタル社会での必須スキル
75
プログラミングの応用分野
Web開発
フロントエンド(HTML, CSS, JavaScript),バックエンド
Python, Django, Flask
データ分析
ビッグデータ処理,統計分析,データビジュアライゼーショ
人工知能
自然言語処理,コンピュータビジョン,予測モデリング
ゲーム開発
2Dゲーム,3Dゲーム,モバイルゲーム
IoTInternet of Things
センサーデータの収集と分析,スマートホームシステム
サイバーセキュリティ
ネットワークセキュリティ,暗号化技術
76
Python 言語の特徴とプログラミングの可能性まと
Python直感的で読みやすい文法を持つプログラ
ミング言語.
文法のシンプルさ拡張性柔軟性が特徴的である.
Python基本的な計算から高度なプログラミング
で幅広く対応可能である.
Web開発,データ分析,AI,ゲーム開発など応用分
野が多岐にわたる.
プログラミングは人間の能力を増幅し,創造的な活
動を支援する.
77
プログラミングにおける注意点
78
1. コンピュータにも,できないことがある全ての
問題を解決できるわけではないことを理解しよう,
2. コンピュータを使用するからといって,算が常
に完全に正確であるとは限らない.特に複雑な計
算を行う場合には,精度に注意が必要.
3. 人間がプログラムを作る際には,書き間違い,勘
違い,思い込みなどによるミスが起こり得る
プログラミングにおける注意点
79
4. ミスがあり得るため,「プログラムが期待通りに
動いているか」を確認するテストは非常に重要
5. ミスの回避のため,抽象化、モジュール,標準ラ
イブラリの活用などの様々な手段を知っておく.
6. 性能や精度を追求し,問題を解決するために,
存のアルゴリズムを知っておく