テクノロジー

SVM(サポートベクターマシン)を学ぶためにおすすめの本9選

SVM(サポートベクターマシン)を学ぶためにおすすめの本9選

近年のAI(人工知能)ブームにより、機械学習が世界的に脚光を浴びていますよね。なかでもディープラーニング(深層学習)はその火付け役ともいえますが、それ以前から多用されてきた基礎的な機械学習にSVM(サポートベクターマシン)があります。

SVM(サポートベクターマシン)とは、教師あり学習の一種で、分類と回帰で優れた認識性能をもつアルゴリズムのことです。計算コストが少ないわりに、データが大きくなっても識別精度が高く、最適化するパラメータも少ないのが特徴で、手書き文字認識や画像分類、為替の変動予測、人口の増減予測など、現実的な課題解決に活用されています。

SVM(サポートベクターマシン)は、機械学習の仕組みを基礎から学びたい方にはうってつけですが、なかにはアルゴリズムと聞くだけでなんだか難しく感じて尻込みしたり、すでに習得しようと努めたものの挫折した経験のある方もいるかもしれません。そんな場合の強い味方が、誰にでもわかりやすい入門書の存在です。

この記事では、SVM(サポートベクターマシン)のおすすめの入門書も紹介するので、これから本格的にエンジニアを目指す方やITリテラシーを深めて仕事でステップアップしたい方にも役立つに違いありません。

そこで今回は、SVM(サポートベクターマシン)の書籍について、超初心者向けの入門書から中級者向けの関連書まで幅広く紹介します。

  1. SVM(サポートベクターマシン)とは
    1. マージン最大化とは
    2. カーネル法とは
    3. 回帰とは
  2. SVM(サポートベクターマシン)を学ぶ前に読んでおきたい超初心者向けの本
    1. 『機械学習図鑑』加藤公一 監修 秋庭伸也 杉山阿聖 寺田 学 著  SE社
    2. 『エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説』 梅田弘之 著 インプレス
    3. 『図解即戦力 機械学習&ディープラーニングの仕組みと技術がこれ1冊でしっかりわかる教科書』 山口達輝 松田洋之 著 アイデミ―
    1. 『サポートベクトルマシン』 竹内一郎 鳥山昌幸 著 講談社
    2. 『パターン認識のためのサポートベクトルマシン入門』 阿部重夫 著 森北出版
    3. 『知の科学 サポートベクターマシン』 小野田崇 著 オーム社
  3. SVM(サポートベクターマシン)を学ぶ上で合わせて読みたい本
    1. 『やさしく学ぶ 機械学習を理解するための数学のきほん〜アヤ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで~』 立石賢吾 著 マイナビ
    2. 『統計的学習理論』 金森敬文 著 講談社
  4. 中級者向けSVM(サポートベクターマシン)関連の本
    1. 『カーネル多変量分析―非線形データ解析の新しい展開』 赤穂昭太郎 著 岩波書店
    2. 『サポートベクターマシン入門』 ネロ クリスティアニー二 ジョン ショー・テイラー 著 大北 翔 訳 共立出版

SVM(サポートベクターマシン)とは

サポートベクトルマシンのイメージ
SVM(サポートベクターマシン)は、高い汎用性のある線形識別器の一つです。線形識別機とは、既存のデータを学習させて、2クラスに明確に分類する境界線を引くためのアルゴリズムです。このアルゴリズムは大変強力な学習モデルのため、未学習データのスピーディーな判別ができるうえ、誤検出が少ないのが強みです。

SVM(サポートベクターマシン)を理解するキーワードは「マージン最大化」と「カーネル法」です。順を追って説明しましょう。

マージン最大化とは

マージン最大化とは、データを2クラスに分類したときに、両クラスのデータ点から最も遠い位置に境界線を引くことを意味します。マージン最大化をわかりやすくするために、具体例をあげて説明しましょう。今回はわかりやすくするため2次元で説明します。

設定条件として、2つの特徴量(説明変数)をもとに、クラス(目的変数)を2次元グラフにプロット(点を打つ)します。例として、同じウリ科のスイカとメロンを識別するとしましょう。

そもそもスイカとメロンは見た目に大きな違いがありますが、それは今回は無視して「重さ」と「糖度」を特徴量として識別するとします。ちなみにスイカの重さは平均で約15kg、糖度は8~10%といわれます。一方のメロンは、重さ約1.5kgで糖度は12~18%です。この数字からもわかる通り、重くて甘さ控えめがスイカ、軽くて甘いのがメロンの特徴です。

2次元グラフの縦軸を「重さ」、横軸を「糖度」とすると、左上部にスイカのデータ点群が、右下部にメロンのデータ点群が集まり、わかりやすく2クラスが生まれます。この両クラスの点群を分ける境界線にもっとも近いデータを「サポートベクトル」と呼び、これがSVM(サポートベクターマシン)の語源となっています。

つまり重さと糖度から考えてスイカかメロンか、見分けがつきにくい限られた数の果物(スイカにしては小さくて甘く、メロンにしては大きくて甘くない)のプロットがサポートベクトル。また、各データから境界線までの距離を「マージン(余白の意)」といいます。

そして各サポートベクトルから境界線までのマージンが大きければ大きいほど、未学習データがスイカなのかメロンなのか、判別しやすくなります。このマージンがもっとも大きくなる位置に境界線を引くことが「マージン最大化」で、これがSVM(サポートベクターマシン)のアルゴリズムです。

この場合、以下のグラフのように境界線は、両クラス群に挟まれるようにして左下から右上に向かって斜めの直線になるのがわかりますよね。そして、データが境界線よりも上にあればスイカで下にあればメロンとすぐに見分けがつくでしょう。これなら判別もスピーディーで誤検出も少なく、この明快さがSVM(サポートベクターマシン)の特徴です。

グラフのイメージ

SVM(サポートベクターマシン)が計算コストが少なくて済むのは、他の多くの機械学習と違って全部のデータではなく、少なければたった2つのサポートベクトルのみ(他のはっきりとした特徴のある果物は判別が容易なためわざわざ考慮する必要がない)を用いて分類するからです。つまり、マージン最大化は、誤検出が少なく分類や回帰ではっきりと識別するSVM(サポートベクターマシン)の心臓部的役割を果たすといえるでしょう。

カーネル法とは

実際の分類や回帰は、先ほどのスイカとメロンのような単純なケースばかりではありません。例えば、特徴量によっては、2クラスのうち、ある群は核のように円形に密集し、もう一つの群がその核をぐるりとドーナツのように取り囲んでばらばらに配置されることもあるでしょう。

この場合、先ほどのように斜めの直線で境界線を引くわけにはいきません。といって、他の方法でも直線では串刺しのようになって適切な区分けができないですよね。

直線で区分けできるデータは線形データといい、そうでない上記のような例は、非線形データといいます。この非線形データでも分類(または回帰)できるのが、SVM(サポートベクターマシン)のさらなる特徴で、これを可能にするのが「カーネル法」です。

カーネル法は、カーネルトリックとも呼ばれ、2つの特徴量を3、4、5…と増やして(n次元)いったんトリックのように高次元に移し、2次元が線のところ、3次元なら「面」、それ以上のn次元なら「超平面」という形で境界を作ります。こうすることで2次元では境界線が引けなくとも、面か超平面という形でなら線形分離ができるので、クラスの識別が可能です。

回帰とは

ちなみに回帰とは、説明変数で構成する式である数理モデルにデータを当てはめて目的変数を導きだすことを意味します。よって、回帰は数式で計算されるため、目的変数は分類のように「クラス」ではなく「数値」による予測となります。

例えば、あるサッカーの試合に訪れる観客数(目的変数)を回帰で予測したい場合を考えましょう。来場者数を決定づける特徴量(説明変数)は「対戦チーム」「日付」「開始時間」「天候」「気温」「試合場所」などが考えられますよね。

これらの特徴量を数値化して、過去のデータをもとに作成した観客数を割りだす数理モデルに当てはめると、当日の来場者の予測数が算出できます。分類の場合がクラスの推測であったのに対して、回帰は数値であるだけで、根本的な考え方はまったく同じです。

そして両者に共通して言えるのは、特徴量(説明変数)を何に設定するかによって、予測内容の精度が異なるということ。この設定が的はずれであれば(例えばサッカーの観客数を予測したいのにチーム監督の年齢を特徴量に設定するなど)、いくらSVM(サポートベクターマシン)が優れたアルゴリズムだといっても、予測が的中する範囲には限界があるので注意しましょう。

SVM(サポートベクターマシン)を学ぶ前に読んでおきたい超初心者向けの本

本のイメージ
ここからはSVM(サポートベクターマシン)を学ぶ際におすすめする書籍を紹介します。まず最初は、SVM(サポートベクターマシン)を学ぶ前の序章として地ならしで目を通しておきたい超初心者向けの本からです。

『機械学習図鑑』加藤公一 監修 秋庭伸也 杉山阿聖 寺田 学 著  SE社

本の名前の通り、機械学習の何たるかが、これ以上ないというくらいわかりやすく解説されています。線形回帰やロジスティック回帰、ニューラルネットワークなど、アルゴリズムの王道といえる内容はもちろん、サポートベクトルマシンについても難しい数学の知識はほとんど使わずに理解できるように構成されています。

一見複雑な17個のアルゴリズムを図解しているので、初心者や機械学習アレルギーのある人でも、本格的な勉強の前の地ならしとしておすすめです。

『エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説』 梅田弘之 著 インプレス

これから機械学習の主流となるAI(人工知能)への理解をうながす書で、その理解に欠かせない「機械学習」「統計学」「アルゴリズム」の3本柱の関係をとてもわかりやすく解説しています。なぜサポートベクトルマシンが必要なのかがイメージしやすくなるうえ、AI(人工知能)の最新動向と共に理解が深まるので、これからの学びに弾みがつくに違いありません。

『図解即戦力 機械学習&ディープラーニングの仕組みと技術がこれ1冊でしっかりわかる教科書』 山口達輝 松田洋之 著 アイデミ―

この本のおすすめポイントは、わかりやすい図がふんだんに使われている点です。機械学習もディープラーニングもただ文章だけで理解するのは、難解に思えたり、実際に活用するシーンがイメージしにくいことがありますよね。

しかし、明快な図を見ながら説明文を読むことで、機械学習やディープラーニングの基礎だけでなく、関連技術やしくみ、開発環境についてもテンポよく学べるように書かれています。もちろんSVM(サポートベクターマシン)についても自然な流れで解説されているので、第一歩を踏み出すにはうってつけでしょう。

SVM(サポートベクターマシン)を学ぶ初心者向け入門書本

数学のイメージ

続いては、SVM(サポートベクターマシン)を本格的に学ぶ入口として目を通したい書籍です。

『サポートベクトルマシン』 竹内一郎 鳥山昌幸 著 講談社

分類、回帰、カーネル関数をはじめ、SVM(サポートベクターマシン)のソフトウェアと実装にいたるまで、SVM(サポートベクターマシン)のすべてのエッセンスが網羅されています。第12章まであるので、一見読破するのが難しく思えるかもしれませんが、各章はわずか10ページかそれ以下というコンパクトなボリュームで、章内の項目はほぼすべてが1ページでまとめられています。あっという間に読めて、何度でも読み返せるSVM(サポートベクターマシン)のバイブル的名著です。

『パターン認識のためのサポートベクトルマシン入門』 阿部重夫 著 森北出版

これは定番の本ですが、2クラスにとどまらず、多クラス問題への拡張やSVM(サポートベクターマシン)の変形にまで解説が及んでいます。SVM(サポートベクターマシン)を的確に使いこなすために重要な特徴量抽出や特徴選択についても詳しく書かれているので、理論だけでなく実践への糸口としておすすめです。

『知の科学 サポートベクターマシン』 小野田崇 著 オーム社

近年のAI(人工知能)ブームが到来する前に書かれた知る人ぞ知るSVM(サポートベクターマシン)の名著です。一見難解で抽象的なSVM(サポートベクターマシン)を基礎から図を使ってわかりやすく丁寧にひも解いています。

しかも最後に応用事例を5つ示して、いかにしてSVM(サポートベクターマシン)を実践に用いるかがさまざまな角度から解説されています。エンジニアを目指すなら一度は読んでおきたい登竜門的バイブルです。

SVM(サポートベクターマシン)を学ぶ上で合わせて読みたい本

統計のイメージ

続いては、SVM(サポートベクターマシン)を学ぶうえで必要な考え方や知識を補完したり、深堀りするのにおすすめの書籍です。目を通すとSVM(サポートベクターマシン)を俯瞰で理解できるようになるでしょう。

『やさしく学ぶ 機械学習を理解するための数学のきほん〜アヤ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで~』 立石賢吾 著 マイナビ

機械学習を本格的に学ぼうとするとき、避けて通れないのが数学の知識です。最近ではもっぱら文系の方でも機械学習やプログラミングを勉強する方が増えていますよね。しかし、この数学がネック、というケースが良くあります。

そこで本著は、回帰、分類、作成したモデルの評価、実装という流れで、高校数学の基本に立ち返りながら機械学習を対話形式でわかりやすく解説しています。数学アレルギーから抜け出したい方向けの珠玉の一冊です。

『統計的学習理論』 金森敬文 著 講談社

この本も定番ですが、SVM(サポートベクターマシン)をはじめとするアルゴリズムは、すべてが完璧ではないため、実装する際にもその効率性をしっかりと見極める必要があります。この本では、それに欠かせない確率論や統計学を基礎から体系的に学べます。

SVM(サポートベクターマシン)やカーネル法だけでなく、弱い学習器にスポットをあてたブースティングなど機械学習の重要コンセプトをしっかり説明しているので、一歩踏み込んだ理解と応用力が身につくでしょう。

中級者向けSVM(サポートベクターマシン)関連の本

機械学習のイメージ

最後は、SVM(サポートベクターマシン)についてある程度理解が進み、さらにエキスパートを目指して学びを進めたい中級者向けのおすすめ本です。

『カーネル多変量分析―非線形データ解析の新しい展開』 赤穂昭太郎 著 岩波書店

いくら優れたアルゴリズムでもビジネスなどで実践できなければ絵に描いた餅ですよね。ただ、いざ現実世界のリアル課題の解決に挑もうとすると、非常に複雑な構造をもつデータが立ちはだかります。しかし、これらは同時に宝の山でもあるため、何としてでも活かさないと大きな損失となりかねません。

そこで力を発揮するのが、カーネル法です。この本では、SVM(サポートベクターマシン)の発明で一気に脚光を浴びたカーネル法について、成り立ちからメカニズム、さらに実装までくまなく解説されています。マニュアル通りに行かないデータ解析の世界で活躍するために大きな後押しとなる一冊です。

『サポートベクターマシン入門』 ネロ クリスティアニー二 ジョン ショー・テイラー 著 大北 翔 訳 共立出版

SVM(サポートベクターマシン)の洋書の中でも研究者から断トツの人気と評価を得ている名著で、日本の多くの人たちに存在を知って欲しい一心で訳者が翻訳し、原著の半額で出版されました。プログラミングや統計などをある程度学んで、さらに踏み込んで学習したい方や大学の講義では物足りないという学生にも読み応えのある、おすすめの一冊です。

さて今回は、超初心者がSVM(サポートベクターマシン)を学ぶのにおすすめの入門書から中級者向けの関連書までを幅広く紹介しました。

SVM(サポートベクターマシン)は、高い汎用性のある線形識別器の一つで、2クラスに明確に分類する境界線を引くための大変強力なアルゴリズムです。その特徴は「マージン最大化」と「カーネル法」で、少ない計算量でスピーディーな判別能力を誇り、誤検出も少なく、線形分離だけでなく非線形分離にも対応できる強みをもちます。分離だけでなく、同じ考え方で回帰にも活用できます。

機械学習やアルゴリズムの超初心者には、SVM(サポートベクターマシン)について学ぶ前に、『機械学習図鑑』『エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説』『図解即戦力 機械学習&ディープラーニングの仕組みと技術がこれ1冊でしっかりわかる教科書』などの基本書がとてもわかりやすくておすすめです。

そして、SVM(サポートベクターマシン)を本格的に学ぶなら、手始めに『サポートベクトルマシン』『パターン認識のためのサポートベクトルマシン入門』 『知の科学 サポートベクターマシン』などを読むと、興味深く学べるでしょう。さらに『やさしく学ぶ 機械学習を理解するための数学のきほん〜アヤ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで~』『統計的学習理論』を読めば、SVM(サポートベクターマシン)への理解が深まります。

そしてSVM(サポートベクターマシン)について、ある程度理解が進んだ中級者なら『カーネル多変量分析―非線形データ解析の新しい展開』『サポートベクターマシン入門』がおすすめです。SVM(サポートベクターマシン)をはじめとする機械学習の勉強に王道はなく、コツコツと地道に学びを積み重ねるのが一番です。

まず読みやすい一冊を手に取って何度も目を通しながら、さらに掘り下げいテーマは関連書籍をあたる、という形で徐々に手を広げましょう。するとある瞬間にグンと理解が進み、アルゴリズムの楽しみがわかるようになるに違いありません。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました