書誌と一口コメント
書誌_IT基礎教養 自然言語処理&画像解析 “生成AI”を生み出す技術:鎌形桂太
一口コメント
要約と目次
IT基礎教養:自然言語処理と画像解析— 生成AIを生み出す技術の概要
要旨
本書「IT基礎教養 自然言語処理&画像解析 “生成AI”を生み出す技術」は、現代テクノロジーの中核をなす生成AIについて、基盤技術から実践的応用までを網羅的に解説する入門書である。AI人材を目指す読者に対し、大規模言語モデル(LLM)や画像生成モデルがどのように成立し、どのように対話や生成を行うのかを、具体的なPythonコードを交えながら体系的に解き明かすことを目的としている。
主要な論点は以下の通りである。
- 生成AIの基盤技術: 生成AIの性能を飛躍的に向上させた中核技術は、2017年に提唱されたTransformerアーキテクチャである。TransformerのAttention機構は、データ内の文脈や要素間の関連性を捉える能力に優れており、現在の主要な言語モデル(GPTなど)や画像モデルの基礎となっている。
- 機械学習の基礎: 生成AIは機械学習、特にディープラーニングに基づく。本書では教師あり学習、教師なし学習、自己教師あり学習、強化学習といった基本類型を解説し、ChatGPTなどがこれらを複合的に利用して高度な能力を獲得するプロセスを詳述している。
- 自然言語処理(NLP): テキストデータをAIが理解し生成するプロセスを、トークン化(文章を単語やサブワードに分割)、ベクトル化(トークンを数値表現に変換)、そしてモデル学習の段階に分けて解説する。Bag of Words(BOW)やTF-IDFといった古典的手法から、word2vec、BERT、GPTといった最新モデルまでを網羅している。
- 実践的アプローチ: 理論に留まらず、Google ColaboratoryとPythonを用いたハンズオン形式の実践パートを設けている。読者は文章分類などの具体的タスクを通じて、データ準備、モデルの学習、評価、結果の解釈といった一連の流れを実体験できる。
- LLMの進化と能力: モデルのパラメータ数や学習データ量を増やすことで性能が向上する「べき乗則」や、モデルが大規模化すると予測不能な新しい能力を獲得する「創発的能力」といったLLMの特性を解説する。これにより、LLMが単なるテキスト生成ツールに留まらず、多様なタスクに対応できる汎用的な能力を獲得した背景を明らかにする。
総じて本書は、生成AIという複雑なテーマを基礎理論、中核技術、実践的応用という多角的視点から解きほぐし、読者が「AIをどう活用するか」という問いに対して明確な指針を得るための知識基盤を提供する、包括的かつ実践的なガイドである。
詳細分析
第1章: 文章解析と画像解析の重要性
1.1. 社会に浸透する生成AI
生成AIは、コンピュータ性能の向上に伴い、私たちの日常生活やビジネスに急速に浸透している。
- ChatGPTの登場: 2022年11月に公開されたChatGPTは、自然な文章生成能力でAIブームの火付け役となった。公開から当時の史上最速で5日間で利用者数100万人に達し、急速に普及した。
- ビジネスと行政での活用: 生成AIはインターネット検索エンジンへの統合に留まらず、多くの企業や自治体で業務効率化のために導入されている。
- 宮崎県都城市: 市の独自情報をAIと連携させて回答を生成する実証実験を実施。
- 埼玉県戸田市: ChatGPTの調査研究チームを設置し、業務効率化を検討。
- 神戸市: 2023年10月に「自治体におけるChatGPT等の生成AI活用ガイド」を公開。
1.2. 画像生成AIの進展と社会的課題
画像分野でも生成AIの活用は進んでいるが、新たな社会的課題も生じている。
- ディープフェイク(deepfake): 2021年8月、ハリウッド俳優ブルース・ウィリス氏のディープフェイクを用いたCMが公開された。これは本人の精巧なコピーを生成し、過去の映像と組み合わせて演技させることが技術的に可能であることを示した。
- 雇用の懸念: この技術は、従来人間が担ってきた仕事がAIに代替される可能性を示唆し、2023年にはAI使用の制限を求めてハリウッドで大規模なストライキが発生した。
- 虚偽情報の拡散: AIを悪用した虚偽情報の流通も社会問題として顕在化している。
1.3. 生成AIの基本原理
生成AIは膨大なデータから特徴を学習し、その学習内容に基づいて新しいコンテンツ(文章、画像、音声など)を生成する。
- データからの学習: 生成AIは「無」から作り出すのではなく、事前に与えられたデータ(文章、画像、音声)を解析して意味づけを行い、特徴を学習することで動作する。
- マルチモーダルAI: 現代のAIは文章、画像、音声といった複数のモダリティを同時に扱うマルチモーダルAIとして進化している。言語モデルを基本とし、画像モデルや音声モデルを組み合わせることで実現される。
- EncoderとDecoder:
- Encoder: 入力データ(文章や画像)から本質的な特徴を抽出(潜在表現を獲得)する機能。
- Decoder: 抽出された潜在表現から目的のデータ(文章や画像)を生成する機能。
- 基盤モデル(Foundation Model): 様々なタスクに応用可能な、事前に大量データで学習されたモデル。ChatGPTのようなチャットアプリケーションは、この基盤モデルを対話に特化させたものである。
- Transformerアーキテクチャ: 2017年に発表されたTransformerは、現代の生成AIにおける事実上の標準技術である。その中核であるAttention機構は、データ内の離れた要素間の関連性を捉える能力に優れ、高度な文脈理解を可能にする。
以下の表は、主な生成AIサービスとその基盤技術をまとめたものである。
| 生成対象 | 主なサービス | 主な開発元 | 使用モデル |
|---|---|---|---|
| 文章 | ChatGPT (Bard) | OpenAI, Inc. | GPT |
| 文章 | Gemini (Bard) | Alphabet Inc. | PaLM |
| 文章 | LlamaChat | Meta Platforms, Inc. | Llama |
| 画像 | ChatGPT Plus | OpenAI, Inc. | DALL-E, GPT |
| 画像 | Stable Diffusion | Stability AI, Ltd. | BigGAN, Imagen 等 |
| 動画 | AnimateDiff | Alphabet Inc. | 拡散モデル |
| 音声 | VALL-E | Microsoft Corporation | 拡散モデル |
| 音声 | Stable Audio | Stability AI, Ltd. | 拡散モデル |
| 点群 | Point-E | OpenAI, Inc. | 拡散モデル |
第2章: 機械学習入門
2.1. AIと機械学習の関係
AIは広範な概念であり、機械学習はその実現手段の一つである。
- AIの定義: 1965年のダートマス会議では「人間が備える知的な能力を人工的に再現するもの」と表現された。
- AIのレベル分類:
- ANI (Artificial Narrow Intelligence / 特化型人工知能): 特定タスクに特化したAI。現在の音声認識や文章生成AIはこれに該当する。
- AGI (Artificial General Intelligence / 汎用人工知能): 人間と同等の知的作業が可能で、複数領域に対応できるAI。
- ASI (Artificial Super Intelligence / 人工超知能): 人間の知能を凌駕するAI。
- 機械学習の位置づけ: AIという大枠の中で、データに基づいて自動的に学習しルールやパターンを発見する技術が機械学習である。その中にニューラルネットワークがあり、さらに層を深くしたディープニューラルネットワーク(深層学習)がある。現代の生成AIはこのディープニューラルネットワークを応用したものである。
2.2. 機械学習のプロセス:学習と推論
機械学習モデルの利用は大きく2つのフェーズに分けられる。
- 学習フェーズ (Training Phase): 過去のデータ(学習データ)を用いてアルゴリズムがモデルのパラメータを最適化する段階。例として「患者の症状から感染症を判別する」タスクでは、過去の診断結果を学習し、症状と病名の関連性を示すモデルを構築する。モデルの予測と正解のズレ(損失)を最小化するようにパラメータが更新される。
- 推論/利用フェーズ (Inference Phase): 学習済みモデルに新しいデータを入力し予測結果を得る段階。学習フェーズで構築されたモデルを用いて未知のデータに対する判断や生成を行う。
2.3. 機械学習の主要な種類
| 種類 | 説明 | 主な用途 |
|---|---|---|
| 教師あり学習 | 正解ラベルが付与されたデータで学習する手法。 | 回帰(数値予測)、分類(カテゴリ判別)。 |
| 教師なし学習 | 正解ラベルのないデータから構造やパターンを見つけ出す手法。 | クラスタリング、主成分分析。 |
| 半教師あり学習 | 少量のラベルありデータと大量のラベルなしデータを組み合わせて学習する手法。 | ラベル付けコストが高い場合の分類問題。 |
| 自己教師あり学習 | データ自体から擬似ラベル(タスク)を生成して学習する手法。大規模言語モデルの事前学習で中心的な役割を果たす。 | 文章の穴埋め問題、次の単語予測。 |
| 強化学習 | 試行錯誤を通じて報酬を最大化する行動を学習する手法。 | ゲームプレイ、ロボット制御、自動運転。 |
ChatGPTの学習プロセス (RLHF) は、これらの手法を組み合わせている。
- 自己教師あり学習: インターネット上の膨大なテキストデータを用いて、言語の基本構造や知識を事前学習する(大規模言語モデルの構築)。
- 教師あり学習(ファインチューニング): 人間が作成した質の高い回答例を学習させ、対話能力を向上させる。
- 強化学習: モデルが生成した複数の回答を人間がランク付けし、その比較結果(報酬)を基に、より好ましい回答を生成するようモデルを調整する。これをRLHF (Reinforcement Learning from Human Feedback)と呼ぶ。
第3章: 自然言語処理入門
3.1. 自然言語処理(NLP)とは
NLPは、人間の言葉(自然言語)をコンピュータで処理する技術分野で、大きく2つに分かれる。
- 自然言語理解 (NLU: Natural Language Understanding): 文章の意味や意図を理解する技術。形態素解析、構文解析、文脈理解などを含む。応用例は音声認識、情報抽出、感情分析など。
- 自然言語生成 (NLG: Natural Language Generation): 入力情報から新しい文章を生成する技術。応用例は機械翻訳、コンテンツ生成、チャットボットなど。
3.2. テキストの離散化:コンピュータが文章を扱うための技術
機械学習モデルがテキストを処理するには、まず文章を数値データに変換する「離散化」が必要である。
ステップ1: トークン化 (Tokenization)
文章を意味の最小単位「トークン」に分割する処理。
- 形態素解析: 日本語のように単語の区切りが明確でない言語で用いられる。文章を品詞などの文法情報を持つ形態素に分割する(例: 「サングラスをかけた少女が公園を駆け回る」→「サングラス」「を」「かけ」「た」「少女」「が」…)。
- サブワード分割: すべての単語を辞書に登録するのは非現実的なため、単語をさらに小さい単位(サブワード)に分割する手法。未知語に対応しやすく語彙数を抑えられる。BPE (Byte Pair Encoding) や SentencePiece といったアルゴリズムが用いられ、BERTやGPTなどの現代モデルで採用されている。
ステップ2: ベクトル化 (Vectorization)
トークン化されたテキストを数値ベクトルに変換する処理。
- Bag of Words (BOW): 文章内の各トークンの出現回数に基づくシンプルな手法。単語の順序や文脈は無視される。
- TF-IDF (Term Frequency-Inverse Document Frequency): BOWを改良し、トークンの重要度を考慮する手法。
- TF (Term Frequency): 文書内でのトークンの出現頻度。
- IDF (Inverse Document Frequency): 多くの文書で出現する一般的な単語の重要度を下げ、特定文書に集中するレアな単語の重要度を上げる指標。
- TFとIDFを掛け合わせて各トークンの重要度を数値化し、文章を特徴づけるベクトルを生成する。検索エンジンなどで利用される。
- 単語の埋め込み (Word Embedding): 各単語を意味や文脈的関係を保持した低次元の密なベクトル(分散表現)に変換する手法。
- 分散仮説: 「単語の意味はその周辺に出現する単語によって形成される」という考え方。
- word2vec: 代表的な単語埋め込み手法。
- CBOW (Continuous Bag of Words): 周辺単語から中心単語を予測するモデル。
- skip-gram: 中心単語から周辺単語を予測するモデル。大規模コーパスではskip-gramが良い結果を示すことが多い。
第4章: 自然言語処理実践 〜文章分類問題を解いてみよう〜
この章では、PythonとGoogle Colaboratoryを使い、映画レビューの良し悪し(ポジティブ/ネガティブ)を判定する文章分類モデルを構築する手順を解説する。
4.1. 実践のフロー
- 環境準備:
- Python: AIやWebアプリ開発で広く使われるプログラミング言語。
- Google Colaboratory (Colab): Googleアカウントがあれば無料で利用できるブラウザ上のPython実行環境。環境構築の手間が不要でGPUも利用可能。
- データ準備と分割:
- 映画レビューのテキストと対応する「good」「bad」のラベルが含まれたCSVを読み込む。
- データを学習用と評価用に分割する(例: 7:3)。これによりモデルの未知データに対する性能を客観的に評価できる。
- 前処理とベクトル化:
- 形態素解析器の作成: 日本語ライブラリJanomeを使いレビューテキストをトークン化し、不要な品詞(助詞、助動詞など)や記号を除去するアナライザを構築する。
- ベクトル化: scikit-learnのCountVectorizer(BOW)やTfidfVectorizer(TF-IDF)を使い、処理済みテキストを数値ベクトル(単語文書行列)に変換する。
- モデルの学習と予測:
- ロジスティック回帰モデル: 2値分類に適した教師あり学習モデル。本例では「good (1)」と「bad (0)」を分類するために使用する。
- scikit-learnのLogisticRegressionで、学習用データのベクトルとラベルでモデルを学習させる。
- 学習済みモデルで評価用データのベクトルを入力し予測結果を出力する。
- モデルの評価:
- 混同行列 (Confusion Matrix): 予測結果と正解ラベルを比較しモデル性能を評価する表。True Positive (TP), False Positive (FP), True Negative (TN), False Negative (FN) の4要素で構成される。
- 評価指標:
- 正解率 (Accuracy): 全データのうち正しく予測できた割合。
- 再現率 (Recall): 実際にポジティブなデータのうち正しくポジティブと予測できた割合(見逃しの少なさ)。
- 適合率 (Precision): ポジティブと予測したデータのうち実際にポジティブだった割合(誤検知の少なさ)。
- ビジネス上の課題に応じて重視する指標を決める(例: スパム検知では適合率重視、がん検診では再現率重視)。
- 結果の可視化:
- どのトークンが「good」または「bad」の判断に強く影響したかを可視化し、モデルがどの部分に着目して判断したかを解釈する。例えば「感情」「キャラクター」「欠如」「映画」といったトークンが「bad」と予測されたレビューで多く使われていることが示されるなど、判断根拠の手がかりとなる。
第5章: 文章生成AIを支える大規模言語モデル
5.1. 事前学習済みモデルの活用
特定タスク(例: 映画レビュー分類)を解く際、その都度モデルをゼロから学習させるのは非効率である。そこで事前学習済みモデルが活用される。
- 事前学習: インターネット上の膨大なテキスト(コーパス)を用いて文章の穴埋めや次単語予測といった汎用タスクを解かせ、言語に関する幅広い知識をモデルに獲得させる。
- ファインチューニング: 事前学習で得た知識を基に、特定タスク(下流タスク)の少量データで追加学習を行いモデルをタスクに特化させる。データ収集や学習コストを大幅に削減できる。
5.2. 代表的な言語モデル
- MLM (Masked Language Model): 文章中の一部単語をマスクし、その周辺文脈からマスクされた単語を予測する。双方向から文脈を理解でき、読解能力に優れる。BERTが代表例。
- CLM (Causal Language Model): 文章を前から順に読み次に来る単語を予測する。文章生成に特化したモデルで、GPTシリーズが代表例。
5.3. TransformerとAttention機構
- Attention機構: Transformerの中核技術で、文章内のトークン間の関連性を評価しどのトークンに「注意」を向けるかを動的に決定する。これにより長文でも文脈を正確に捉えられる。
- Multi-head Attention: 複数のAttentionを並列で実行し、異なる観点から単語間の関連性を捉えることで高度な文脈理解を実現する。
- Encoder-Decoder構造: Transformerは入力から特徴を抽出するEncoderと、その特徴からデータを生成するDecoderで構成される。この構造は翻訳などで高い性能を示す。
5.4. 大規模言語モデルの進化と特性
- べき乗則 (Scaling Laws): 言語モデルの性能は「計算量」「データセットサイズ」「モデルのパラメータ数」を増やすことで予測可能に向上するという法則。GPT-1からGPT-3への大規模化が性能向上をもたらした背景にはこの法則がある。
- 創発的能力 (Emergent Abilities): モデル規模が一定閾値を超えると、小規模モデルでは見られなかった新しい能力が突然現れる現象。これによりLLMは学習データに直接含まれない複雑なタスクもこなせるようになった。
- LLMと生成AIの関係: 創発的能力の発見により、LLMの用途は単なる欠損補完予測から汎用的タスクへと広がった。現代の生成AI(例: ChatGPT)は、この強力なLLMの能力を人間との対話という形で引き出せるように調整されたモデルである。
5.5. 大規模言語モデルの活用方法
| 活用方法 | 説明 |
|---|---|
| モデルをそのまま活用 | プロンプトエンジニアリング(Few-shot、Chain-of-thoughtなど)を駆使してモデルの知識を引き出す。 |
| モデルをファインチューニング | 独自データで追加学習し、特定タスクやドメインに特化させる。より高い精度が期待できる。 |
| 外部知識を組み込む | RAG (Retrieval-Augmented Generation) と呼ばれる手法。モデルが回答生成時に外部データベースや文書から関連情報を検索・参照することで、最新情報への対応やハルシネーション(もっともらしい誤り)の抑制を図る。 |
- はじめに
- 第1章 文章解析と画像解析の重要性
- 01 社会へ浸透する生成AI
- 02 生成AIの種類と、文章生成AIと画像生成AIの関係
- 第2章 機械学習入門
- 01 生成AIと機械学習モデルの関係
- 02 機械学習とは?
- 03 線形回帰 ~“数字”を予測する~
- 04 ロジスティック回帰 ~“ラベル(Yes/No)”を予測する~
- 05 ニューラルネットワーク ~より複雑な問題を予測する~
- 第3章 自然言語処理入門
- 01 自然言語処理で何ができるのか?
- 02 離散化 ~文章を区切る技術~
- 03 単語文書行列 ~BOWとTF-IDF~
- 04 word2vec(skip-gram、CBOW)
- 第4章 自然言語処理実践 ~文章分類問題を解いてみよう~
- 01 文章分類問題とは
- 02 文章分類問題を解く準備をしよう
- 03 Colabでプログラムを実行しよう
- 04 学習用データを準備しよう
- 05 ロジスティック回帰モデルで分析しよう
- 第5章 文章生成AIを支える大規模言語モデル
- 01 文章分類問題と大規模言語モデルとの関係
- 02 言語モデルを動かしてみる① MLM(穴埋め問題を解く)
- 03 言語モデルを動かしてみる② CLM(次のトークンを予測する)
- 04 言語モデルを固有タスクに対応させるファインチューニング
- 05 参考:言語モデルの中身
- 06 大規模言語モデルと生成AIとの関係
- 第6章 画像解析入門
- 01 画像解析で何ができるのか?
- 02 画像データの扱い方とニューラルネットワークの使い方
- 03 画像に特化した畳み込みニューラルネットワーク
- 04 画像解析の活用シーン
- 第7章 画像解析実践 ~画像分類問題を解いてみよう~
- 01 画像分類問題とは?
- 02 画像分類問題を解く準備をしよう
- 03 簡単なモデルを作ってみよう ~model01~
- 04 中間層を追加したモデルを作ってみよう ~model02~
- 05 より高度なモデルを作ってみよう ~model03~
- 06 まとめ
- 第8章 画像生成AIを支える技術
- 01 画像を生成する方法1 ~オートエンコーダとは~
- 02 オートエンコーダを作ってみよう
- 03 画像を生成する方法2 ~VAE/GAN/拡散モデル~
- 04 文章から画像を生成するAIの仕組み
- 05 まとめ ~生成AIと解析技術の関係~
- おわりに
- 索引
- 著者/監修者プロフィール
