機械学習に知っておくべき8つの用語

近年、機械学習に関する記事、ニュースなどで耳にした方もいると思いますが、それが本当に何かを知っていますか？簡単に言えば、人の仕事がロボットに置き換わってくるテクノロジーの一つが機械学習です。先日[機械学習に知っておくべきアルゴリズム](https://qiita.com/Octoparse_Japan/items/674e7dabc47b297f88ec)を10つを紹介しました。今回は機械学習に最も関連する8つの用語を紹介します。 

この記事で紹介される8つの用語は次のとおりです。

**自然言語処理（NLP）**
**データベース**
**コンピュータビジョン**
**教師あり学習**
**教師なし学習**
**強化学習**
**ニューラルネットワーク**
**過剰適合（過学習）**

 

#1.自然言語処理（NLP）
自然言語は、人間がお互いにコミュニケーションを行うために自然発生しました。自然言語処理とは、私たちが日常的に使っている言葉（自然言語）をコンピューターに処理させる一連の技術のことです。自然言語処理は機械学習に一般的な概念で、人工知能（AI）と言語学の一分野です。

自然言語処理の最もよく知られている応用技術は次のとおりです。

**（1）文書分類**
これは、文書を異なるカテゴリに分類すること、または関連性に基づいて文書のリストを整理することです。たとえば、迷惑メール（迷惑メールかどうかを分析する）を判断することも、ビジネスの方で、競合他社に関する情報を抽出することもできます。

**（2）感情分析**
感情分析により、コンピュータは、文書を分析することによって、喜び、怒り、悲しみなどの感情を解読することができます。これは、顧客満足度調査で広く使用されており、顧客が製品に対する感情を分析します。

**（3）情報抽出**
これは主に、要約を作成するのと同じように、長い段落を短いテキストに要約するために使用されます。

**（4）固有表現抽出**
固有表現抽出は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を抽出する技術です。固有表現抽出は、質問応答システム、対話システム、情報抽出といった自然言語処理を用いた応用アプリケーションの要素技術としても使われています。
 
**（5）音声認識**
音声認識とは、人間の声などをコンピューターに認識させることです。話し言葉を文字列に変換したり音声の特徴をとらえて声を出している人を識別したりする機能を指しています。AppleのSiri、自動音声入力などは素晴らしい例です。

**（6）自然言語の理解と生成**
自然言語理解（NLU）は、コンピュータに自然言語を理解（読解）または意図を抽出させるという試みです。逆に、自然言語生成は、知識ベースや論理形式などの機械表現系から自然言語を生成することです。この技術は、人間とロボットとのコミュニケーションに非常に一般的に使用されています。

**（7）機械翻訳**
機械翻訳は、コンピューターを利用してテキストを別の言語（または特定の言語）に自動的に翻訳することです。ここ2年、機械翻訳の精度が大幅に改善しています。2016年末頃、Google翻訳の翻訳精度が飛躍的に向上し、大きな話題となりました。それまでは、英語を日本語に翻訳すると不自然な文章になってしまうことも多かったのですが、現在では、より自然な日本語の翻訳結果を得られるようになっています。


#2.データベース
データベースは機械学習に必要な部分です。機械学習システムを構築する場合は、オープンソースのデータセットからデータを収集するか、新しいデータを生成する必要があります。機械学習に使用されるすべてのデータセットが結合されてデータベースを形成します。一般に、科学者はデータを3つのカテゴリに分類します：

**トレーニングデータ：**トレーニングデータは開発した機械学習アルゴリズムに与えてモデルのトレーニングに使うデータセットです。トレーニングを通じて、機械学習モデルはデータの重要な特徴を認識することができます。

**バリデーションデータ：**バリデーションデータは、モデルのハイパーパラメータを決めるためのデータで、最適なモデルを選ぶために使用されます。バリデーションデータはトレーニングデータとは異なり、トレーニングセクションで使用することはできません。また、過剰適合が発生し、新しいデータ生成に悪影響を与える可能性があります。

**テストデータ：**テストデータはトレーニングデータとバリデーションデータとを合わせたデータで構築された、モデルの推定性能を、最終的に検証するためのデータです。

伝統的な機械学習では、これらの3つのデータセットの比率は50/25/25です。しかし、一部のモデルでは調整があまり必要ない場合や、トレーニングデータが実際にトレーニングと検証（クロスバリデーション）を組み合わせることができるため、トレーニング/テストの比率は70/30になる可能性があります。

 
#3.コンピュータビジョン
コンピュータビジョンはコンピューターに取り入れた生の画像情報を処理して、必要な画像情報を取り出す技術です。コンピュータビジョンで以下の技術がよく見られます。

**画像分類：**画像分類とはコンピュータに特定の画像から情報クラスを抽出するタスクのことを指します。たとえば、特定の場所に登場する特定のものを認識するようにモデルをトレーニングします。画像分類された結果のラスターは主題図の作成に使用することができます。

**目標検知：**目標検知は、一連の事前定義されたカテゴリから特定のクラスを検出するようにモデルを教え、矩形でそのクラスを標記することです。例えば、目標検知は顔認識システムの構成に使えます。モデルは事前定義されたものをすべて検出し、それらを強調表示できます。

**画像分割：**画像分割は、デジタル画像をいくつかの小領域（スーパーピクセルとも呼ばれるピクセルのセット）に分割するプロセスです。分割の目的は、画像の表現をより分かりやすく分析しやすいものに簡単化して、応用する事ができるようになります。

**有意性検定：**研究データまたは統計データを収集したら、統計的推論により、アナリストは、サンプルが採取された母集団についての証拠または一部の主張を評価することができます。サンプルデータに基づいてクレームを支持または拒否するために使用される推論の方法は、有意性検定として知られています。
 

#4.教師あり学習
教師あり学習は、学習データに正解ラベルを付けて学習する方法です。例えば、花の名前を教えてくれるAIを作るのなら、学習データ（画像）に対して、これは「バラ」、これは「ボタン」というようにラベルを付けて学習させます。機械学習を実利用する際は、多くの場合この教師あり学習を用います。

 
#5.教師なし学習
一方、教師なし学習は、学習データにラベルを付けないで学習する方法です。2012年にGoogleが猫を認識できるAIを作成したことが大きなニュースになったのは、それが教師なし学習だったからです。Web上の画像や動画をラベルなしで1週間読み取るうちに、AIが自律的に「猫」というものを認識するようになりました。これは、幼児が毎日いろいろなものを見るうちに、自然と「こういうものが猫ってものか」と認識してゆくのに似ています。
  

#6.強化学習
強化学習とは、試行錯誤を通じて「価値を最大化するような行動」を学習するものです。よく知られている例はAlphaGoです。2016年にGoogleのAlphaGoというAIが韓国の囲碁プロ棋士を破ったという大きなニュースがありましたね。実は、これは強化学習を使って強くなりました。囲碁のように、必ずしも人間に正解がわかるわけではない場合でも学習できるので、人間を超える力を身につけることが期待されています。最近では、リアルタイムの入札にも強化学習が適用されています。
 

#7.ニューラルネットワーク
ニューラルネットワークは、人間の脳神経系のニューロンを数理モデル化したものの組み合わせのことです。人工ニューラルネットワーク（ANN）は、多くのニューロンが相互接続してネットワークを形成する脳のように、多くの層で構成されています。すべての層は、一連のニューロンの集まりです。ANNはデータを連続して処理することができます。つまり、最初の層のみが入力に接続され、層が増加すると、ANNはより複雑になります。層が大きくなると、モデルは深層学習モデルになります。10年前、3層しかないANNは十分深く、現在は通常20層が必要です。

ニューラルネットワークには多くのバリアントがありますが、一般的に使用されるものは次のとおりです。

**畳み込みニューラルネットワーク** - 画像や動画認識に広く使われているモデル
**再帰型ニューラルネットワーク** - 株価などの時系列データを扱うことのできるモデル
**確率的ニューラルネット** - 乱数による確率的な動作を導入したモデル
 

#8.過剰適合（過学習）
過剰適合とは、統計学や機械学習において、トレーニングデータに対して学習されているが、テストデータに対しては適合できていない、汎化できていない状態を指します。機械学習の分野では過学習とも呼ばれます。

過剰適合の概念は機械学習でも重要です。通常、学習アルゴリズムは一連のトレーニングデータを使って訓練されます。つまり、典型的な入力データとその際の既知の出力結果を与えます。学習者はそれによって、トレーニングデータでは示されなかった他の例についても正しい出力を返すことができるようになると期待されます。しかし、学習期間が長すぎたり、トレーニングデータが典型的なものでなかった場合、学習者はトレーニングデータの特定のランダムな（本来学習させたい特徴とは無関係な）特徴にまで適合してしまいます。このような過剰適合の過程では、訓練データについての性能は向上するが、それ以外のデータでは逆に結果が悪くなります。

 

 

#まとめ
機械学習の分野は実際紛らわしい世界です。非常に多くのアルゴリズム、非常に多くの問題があります。用語もたくさんありすぎます。今回は機械学習に出てくる基本的な用語について纏めましたが、如何でしたでしょうか。機械学習に興味がある方は、本記事に是非目を通してください。