生成AIは機械学習から始まる:基礎から理解する技術の系譜と実装への道

生成AIは機械学習から始まる:基礎から理解する技術の系譜と実装への道

今回は「生成AIは機械学習から始まる:基礎から理解する技術の系譜と実装への道」と題して、生成AIの基礎中の基礎からスタートして、実際に生成AIをもちいたアプリケーションの開発するまでの解説をするAIアプリ開発技術解説記事です。

予め断っておきますが、本記事の内容は経営者層や管理職、データサイエンティスト向きの記事ではありません^^

AIアプリ開発の初心者向けに基礎の基礎から解説していきますので、興味のある方は是非参考までにご覧ください。

では、さっそくはじめていきましょう!

生成AIブームの裏側にある誤解

ChatGPTの登場以降、生成AI(GenAI)は瞬く間に社会に浸透し、ビジネスや日常生活に革新をもたらしています。しかし、この急速な普及の裏側で、ある重要な誤解が広がっています。

まず、この誤解から解いていくことにしましょう。

多くの人々は、まるで従来の技術とは断絶した革命的な発明であるかのように、生成AIを「突然現れた全く新しい技術」として捉えています。

実際、メディアでは「AI革命」という言葉が踊り、生成AIがあたかも他の技術領域とは独立した存在であるかのように語られることが少なくありません。

しかし、これは大きな誤解です。

生成AIは、決して突然生まれた技術ではありません。生成AIは、数十年にわたる機械学習(Machine Learning)研究の積み重ねの上に成り立つ、機械学習という広大な技術体系の一部なのです。

なぜ、記事の冒頭からこの誤解について取り上げているかというと、技術者にとって深刻な問題を引き起こすことがあるからです。

それは、生成AIを「独立した技術」として理解しようとすると、以下のような壁にぶつかることになります。

  1. なぜこのモデルはこのように動作するのか?  という根本的な疑問に答えられない
  2. 学習データの質や量がなぜ重要なのか  を理解できない
  3. ハルシネーション(幻覚)やバイアスといった問題  の本質が見えない
  4. ファインチューニングプロンプトエンジニアリング  の原理が掴めない
  5. 新しい技術が登場したとき  に、その位置づけや意義を判断できない

あるあるな問題ではあるのですが、一旦壁にぶちあたると、壁を超えるまでに長い時間を要してしまう場合がありますので、機械学習の基礎概念から始めて、深層学習の登場、そして生成AIへと至る技術の系譜を辿るつつ、GenAIの本質的な理解と実践的な実装力の獲得を目指していきます。

目標は、表面的なツールの使い方だけでなく、なぜそれが動くのか、どのような限界があるのか、そしてどう応用できるのか——これらを理解することです。

AIアプリ開発技術者としての土台を、一緒に築いていきましょう。

機械学習(ML)とは何か

機械学習の定義と基本概念

機械学習(Machine Learning, ML)を一言で表現するなら、「データから学習し、経験を通じて自動的に改善するコンピュータプログラムの研究分野」と言えるでしょう。

より厳密に言えば、機械学習とは「明示的にプログラムされることなく、データからパターンを発見し、そのパターンを使って予測や意思決定を行う能力をコンピュータに与える技術」となります。

因みに、この定義はコンピュータ科学者アーサー・サミュエルが1959年に提唱した概念に基づいています。

機械学習の核心にあるのは、「学習」という概念です。

人間が経験から学ぶように、機械学習システムもデータという形の経験から学習します。

例えば、子供が何度も猫を見るうちに「耳が尖っている」「ひげがある」「四本足である」といった特徴を自然に学び、新しい猫を見ても「これは猫だ」と認識できるようになります。

機械学習も同様に、大量の猫の画像から特徴を抽出し、未知の画像に対しても「これは猫である」と判断できるようになるのです。

この学習プロセスの中核には、モデルという概念があります。

モデルとは、入力データと出力結果の間の関係性を数学的に表現したものです。機械学習では、このモデルを訓練データから構築し、新しいデータに対して予測を行うのです。

重要なのは、機械学習が単なる「データの記憶」ではないということです。

機械学習システムは、訓練データを丸暗記するのではなく、データに潜む一般的なパターンや規則性を抽出します。これを汎化能力(汎化性能)と呼びます。汎化能力があるからこそ、訓練時には見たことのない新しいデータに対しても、適切な予測や判断ができるのです。

伝統的なプログラミングとの違い

機械学習の本質を理解するには、伝統的なプログラミングとの対比が非常に有効です。この違いは、単なる手法の差異ではなく、問題解決のアプローチそのものの根本的な転換を意味します。

伝統的なプログラミングのアプローチ

伝統的なプログラミングでは、プログラマーが明示的なルールを記述します。つまり、「このような入力があったら、このような処理をして、このような出力を返す」という手順を、すべて人間や今ではAIが定義します。

例えば、メールのスパム判定を伝統的な方法で実装する場合、以下のようなルールを書くことになります。

if メール本文に「無料」という単語が含まれる:
    スパムスコア += 10
if 送信者アドレスが既知のスパムリストにある:
    スパムスコア += 50
if メールに添付ファイルが多数ある:
    スパムスコア += 20
if スパムスコア > 閾値:
    return "スパム"
else:
    return "正常

こうなったら、こうする。と明記していきますので、入力に対し忠実な結果を出力することになります。

このアプローチを簡単な構造で表すと、「データ + ルール → 答え」という形になります。

プログラマーは問題を分析し、解決のための論理を考え、それをコードとして実装するのです。

このアプローチの明確な利点について、まとめておきましょう。

  • 動作が予測可能:書いた通りに動作する
  • デバッグが容易:問題が起きた箇所を特定しやすい
  • 透明性が高い:なぜその判断をしたのか説明できる

素晴らしいですね。しかし、世の中に完璧なものは存在します。素晴らしく完全に見えるものにも、必ず致命的な問題や限界が存在するものです。

以下にまとめておきます。

  1. 複雑な問題への対応困難:画像認識や自然言語理解のように、ルールを明示的に定義することが極めて困難な問題が存在します。「猫とは何か」を完全なルールで定義できるでしょうか?
  2. 保守性の問題:新しいパターンが現れるたびに、人間がルールを追加・修正する必要があります。スパムの手法は日々進化するため、ルールベースのシステムは常にイタチごっこになります。
  3. スケーラビリティの欠如:ルールが増えれば増えるほど、システムは複雑になり、相互作用や矛盾が生じやすくなります。

APPSWINGBYは、最先端の技術の活用と、お客様のビジネスに最適な形で実装する専門知識を有しております。AI開発からシステム刷新(モダナイゼーション)、システムリプレース、新規サービスの設計・開発、既存システムの改修(リファクタリング、リアーキテクチャ)、DevOps環境の構築、ハイブリッドクラウド環境の構築、技術サポートなど提供しています。

貴社の業務革新やAI導入についてご相談されたい方は、お問い合わせフォームからお気軽にご連絡ください。AI開発とSIの専門家が、貴社の課題解決をサポートいたします。

システム開発にお困りではありませんか?

この記事を書いた人
株式会社APPSWINGBY
株式会社APPSWINGBY マーケティング

APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。

ご支援業種

情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数

株式会社APPSWINGBY
株式会社APPSWINGBY マーケティング

APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。

ご支援業種

情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数

監修
APPSWINGBY CTO川嶋秀一
株式会社APPSWINGBY  CTO 川嶋秀一

動画系スタートアップや東証プライム上場企業のR&D部門を経て、2019年5月より株式会社APPSWINGBY 取締役兼CTO。
Webシステム開発からアプリ開発、AI導入、リアーキテクチャ、リファクタリングプロジェクトまで幅広く携わる。
C, C++, C#, JavaScript, TypeScript, Go, Python, PHP, Java などに精通し、Vue.js, React, Angular, Flutterを活用した開発経験を持つ。
特にGoのシンプルさと高パフォーマンスを好み、マイクロサービス開発やリファクタリングに強みを持つ。
「レガシーと最新技術の橋渡し」をテーマに、エンジニアリングを通じて事業の成長を支えることに情熱を注いでいる。

APPSWINGBY CTO川嶋秀一
株式会社APPSWINGBY  CTO 川嶋秀一

動画系スタートアップや東証プライム上場企業のR&D部門を経て、2019年5月より株式会社APPSWINGBY 取締役兼CTO。
Webシステム開発からアプリ開発、AI導入、リアーキテクチャ、リファクタリングプロジェクトまで幅広く携わる。
C, C++, C#, JavaScript, TypeScript, Go, Python, PHP, Java などに精通し、Vue.js, React, Angular, Flutterを活用した開発経験を持つ。
特にGoのシンプルさと高パフォーマンスを好み、マイクロサービス開発やリファクタリングに強みを持つ。
「レガシーと最新技術の橋渡し」をテーマに、エンジニアリングを通じて事業の成長を支えることに情熱を注いでいる。