【私家版】MathWorksディープラーニング知識クイズの解答解説を作ってみた

ネットで調べ物をしていたら、下図のバナー広告を目にしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/975b8e56-6c98-1a5b-2bd2-c935c647400c.png)

MatLab[^matlab]を開発していることで知られているMathWorks社が自社製品の広告の一環でディープラーニング知識クイズを出題していることが分かりました。但し、解答解説は無し。:scream:そこで筆者がお節介ながら私家版解答解説を作成してみることにしました。[^answer]

:warning: 実際のクイズは[ここ](https://explore.mathworks.com/jp-deep-learning-knowledge-quiz)からアクセス出来ます。

# オープニング
バナー広告をクリックすると以下のページが表示されます。それでは、いよいよ問題を見ていこうと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/23acf844-1a79-88f0-2b3b-d1325f1f61ea.png)


# 質問1: 予測結果と真のクラスを同時に比較する○○○○

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/bf26fbaf-f1d0-0c24-f340-49ce59b4f615.png)

正解は<font color="RED">混合行列</font>です。予測結果を横軸に、真のクラス(正解のこと)を縦軸に描画して、同時に比較出来る様にした物。
不正解の選択肢について。カオステーブルという用語は聞いたことが有りません。但し、カオステーブルというテーブルのブランドはどうやら有る様です。予測プロットも用語と言うよりは予測値をただプロットしただけのこと。残差プロットは重回帰分析での回帰診断のために用いられる散布図です。詳細は[参考](https://bellcurve.jp/statistics/glossary/13080.html)を参照。

# 質問2: ハイパーパラメータ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/f8fd8224-d648-5bd8-7033-202df8b101ec.png)

正解は<font color="RED">学習アルゴリズムのパフォーマンスを向上させるためのパラメータ最適化</font>です。ハイパーパラメータは最近でこそOptunaなど最適な数値を自動的に探してくれるライブラリが開発され、自動化されつつ有りますが、多くの場合、学習アルゴリズムの利用者自身で学習アルゴリズムの実行前に(手作業)で設定します。手作業でやっている時点で、最適化！？となりそうですが、それは近年学習アルゴリズムが複雑怪奇になっているからそう思うのかもしれません。

# 第3問: オーバーフィッティング

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/b75bd4d1-215f-5217-d6ba-6d1d5fd3059b.png)

正解は<font color="RED">モデルが学習データの情報を過剰に学習し、より大きなデータセットに対して一般化できなくなること</font>です。過学習とも言います。徳川家康の遺訓に「及ばざるは過ぎたるより勝れり」（意味：やらないことはやり過ぎることより良い）というくだりが有ります。これは正に過学習のことを言っているという訳では有りませんが、学習データの特徴を忠実に学習し過ぎたために、本来の分類対象である未知のデータに対して性能が出ない（汎化できない）ことを意味しています。「〜し過ぎる」という日本語はネガティブな意味で使われることが多い様に思いますが、過学習もまた然りだと思います。

# 第4問: 画像分類

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/128088e8-c487-8069-260f-8789e74800fb.png)

正解は<font color="RED">セマンティックセグメンテーション</font>です。動画や静止画の画像中に何が写っているかを認識する時の学習モデルに学習させる学習データを作成する時に利用されます。(MathWorks社による詳しい解説は[こちら](https://jp.mathworks.com/solutions/image-video-processing/semantic-segmentation.html))
不正解の選択肢について。回帰分析は連続値の予測や、ある値Xに対する応答Yを求める分析です。シーケンス分類とは時系列データの分類を指します。(MathWoks社による詳しい解説は[こちら](https://jp.mathworks.com/help/deeplearning/ug/classify-sequence-data-using-lstm-networks.html))LSTM(Long Short Term Memory)が有名です。そして、紛らわしいのがピクセルセグメンテーション。画素（ピクセル）単位でクラス分類ということでこちらを選んでしまいそうですが、機械学習界隈の用語としてはセマンティックセグメンテーションです。

# 質問5: 回帰モデル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/719c8bd1-1a27-54cb-8a0e-636e531ba7cd.png)

正解は<font color="RED">気温、日付、時刻の変化などの数値の応答を予測する</font>です。回帰分析では回帰モデルを用いて連続値を求めます。気温、日付、時刻の変化など、どれも連続的に数値が変動します。
不正か良いの選択肢について。予め定義されたカテゴリにデータを割り当てる、データの中から予測されたデータの分類と真のクラスラベルを比較するは教師有り学習で行われる行程です。類似性に基づきグループ内の応答をクラスタリングしてパターンを見つけるのは教師無し学習で行われる行程です。

# 質問6: データに内在するパターンの発見

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/5c6ffc80-67b3-d3f0-d18d-6f0525188afe.png)

正解は<font color="RED">教師無し学習</font>です。機械学習のアルゴリズムは大まかに教師有り学習、教師無し学習、強化学習の3つに分類されます。教師有り学習はラベル付けされたデータを学習、つまり問題とその答えを同時に学習させます。それに対して教師無し学習は問題は与えられますが、答えは与えられません。問題に内在するパターンを抽出（クラスタリング）します。強化学習はある行動をした時の報酬が最大となるのは？というパターン（所謂最善手)を探索しながら学習します。コンピュータが人間に勝つことは不可能と言われていた囲碁で圧倒的な性能を叩き出し、元囲碁の世界チャンピョンを破りました。

# 質問7: 生成モデル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/2d27c3bc-6e26-3f5e-83ae-57adf47105d9.png)

正解は<font color="RED">敵対的生成ネットワーク</font>です。英語ではGenerative Adversarial Network(GAN)と言います。警泥遊びに例えられたりします。詳しい解説はMathWorksによる[解説](https://jp.mathworks.com/help/deeplearning/ug/train-generative-adversarial-network.html)が有ります。
不正解の選択肢について。長・短期記憶ネットワーク(LSTM)は時系列データの分類に使用します。YOLOv3ネットワークは動画像認識に、超解像度ネットワークは低解像度の画像から高い解像度の画像を生成するのに利用します。

# 質問8: 学習済みモデルの再利用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/2eaf3a6b-d386-d965-5c40-94104d029b40.png)

正解は<font color="RED">転移学習</font>です。事前学習済のネットワークを利用することで、学習時間の削減や、モデルの最適化が進みやすいことが知られています。

# 質問9: 時系列モデル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/269e52f2-c7c5-57b5-23ac-82afa0dcce37.png)

正解は<font color="RED">長・短期記憶ネットワーク</font>です。Long Short Term Memory(LSTM)とも言い、人間の脳の長期記憶、短期記憶のメカニズムの工学的なモデルと言っても良いでしょう。流石はMathWorks。親切にも[詳細なる解説](https://jp.mathworks.com/help/deeplearning/ug/long-short-term-memory-networks.html)が用意されています。
不正解の選択肢について。まず、アテンションネットワークは画像分類に、シャムネットワークは次元削減にそれぞれ使われます。ミニバッチアルゴリムはデータセットから少量のデータ(ミニバッチ）を取り出して、ミニバッチ単位でニューラルネットワークを学習させる方法です。

# 質問10: 検証データ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/f48a8c90-c54d-c18a-d637-85d53ba14b29.png)

正解は<font color="RED">学習中にモデルがどの程度一般化するかテストするため</font>です。学習中にどの程度学習出来ているか検証するために、多くの場合、学習を開始する前に学習データを学習に使用するデータと検証データに分けます。検証データは学習には使用しません。さらに学習後にテストデータを学習データとも検証データとも異なるテストデータを用いて、学習の結果としてどれだけ汎化（一般化）が進んだか検証します。

# 因みに筆者は。。。
筆者の解答結果は以下でした。。。ハイパーパラメータとセマンティックセグメンテーションを間違えました。ハイパーパラメータは手作業で設定→モデルの最適化という発想に頭の中で繋がっていませんでした。。。(理解不足) :sweat: セマンティックセグメンテーションはうろ覚えで間違えてしまいました。。。:sob: :scream: :scream_cat: 但し、MathWorks社は数値計算ソフトウェアの大手。尚且つMatLabは黎明期からディープラーニングのMatLabへの取り込みに熱心でした。そんな企業から冗談でも「プロですね！」と言われるのは嬉しい[^pro]ものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/75d2f94c-71bb-4c70-9219-5b0f082323c4.png)


[^matlab]: このソフトウェアの名前の読み方「マトラボ」が一般的だと思いますが、学生時代制御理論の教授が「マットラブ」と呼んでいました。SciLabは「サイラボ」、GitLabは？？「ギットラボ」と呼ぶ人もいれば、「ギットラブ」と呼んでいる人もいます。(筆者は因みに前者(ギットラボ)です)

[^answer]: この解答で全問正解(100%)となることを確認して作成しています。

[^pro]: 実際の筆者はディープラーニングで生計を立てていないのでアマチュアです。