元大学教員の高校教諭が総務省「情報II」教材を利用した機械学習の授業案を考えてみた|第5回:AIに影響を与える要素を考える
こんにちは。ヒューマノーム研究所 次世代先端教育特命研究員の辻敏之と申します。普段は中学・高校の教員をしながら、ヒューマノーム研究所のお手伝いをさせていただいています。
この連載では総務省から発表された「高等学校における「情報II」のためのデータサイエンス・データ解析入門」を授業で活用するアイデアについて共有します。
無理なくデータ解析全体の流れを学ぶことに主眼を置き、授業内でプログラミングレスな初心者向けノーコードAI構築ツール Humanome CatData(以下 CatData)とHumanome Eyes(以下 Eyes)を利用することで、生徒がより楽しくデータサイエンスが学べます、という提案です。
これまでの連載は以下のリンクよりお読み下さい。
連載第2〜3回ではSVMを用いた学習を、第4回ではランダムフォレストを用いた学習をそれぞれ行いました。CatDataではこの他にニューラルネットワーク、ロジスティック回帰、LASSOによる学習を行うことが出来ます。
今回は第2〜3回で用いたスマホの過去の故障歴を様々な手法を用いて予測してみたいと思います。(もちろん、生徒たちはすでにいろいろ試しているかもしれません。)
1. CatDataで解析に利用できる手法
最初に、CatDataで使用できる学習手法についてまとめます。CatDataでは目的変数(予測したい項目)の型と説明変数(予測するための項目、複数)の型の組み合わせによって、選択肢が自動的に学習のプルダウンメニューに示されます(図1)。
図1では4つの手法が示されていますが、CatDataでは現在これにLASSO(ラッソ回帰)を加えた5つの手法を使うことができます。使用条件を以下にまとめました。
目的変数の型:カテゴリ、説明変数の型:カテゴリと数値(浮動小数点、整数)
→ Random Forest、Neural Network目的変数の型:カテゴリ、説明変数の型:数値(浮動小数点、整数)
→ SVM、Logistic Regression、Random Forest、Neural Network目的変数の型:数値、説明変数の型:数値(浮動小数点、整数)
→ LASSO、SVM、Random Forest、Neural Network
2. データの型の使い分けについて
CatDataではデータを読み込んだときに各列の型を選ぶことができます。デフォルトではシステム側でそれらしい型を推測し、提案します。図2は総務省が公開している携帯電話の故障歴についてのデータを読み込んだところです。各列に「列の型」というプルダウンメニューがあり、自動的に提案される型から変更することができるようになっています。また、複数の型の可能性がある列は赤字で示されますので、確認しましょう。
例えば、「直近1ヶ月で落下させた回数」は本来整数ですが、0, 1, 2 など小さい整数のみで構成されているためカテゴリ型を提案されています。正しくは整数型です。このほかにカテゴリ型でも整数型でも成り立つ列がいくつかあります。「過去の故障歴」「利用者性別」「ヒビの有無」「カバーの有無」「リングの有無」なども、0と1もしくは数種の数字や文字列で構成された項目です。
これらについて、第3回では整数型を選択しました。あのときはサラッと「整数型を選択しておきましょう」と書きましたが、いまならその理由もわかりますね。そうです。上に示したようにSVMを使うためには目的変数(予測したい項目)はカテゴリ型、説明変数(予測に使う項目)は整数型である必要があるためです。
このようにご自身が使いたい手法に合わせて「列の型」を決定することが、CatDataをより使いこなすポイントになります。
3. 学習モデルを様々な手法で作成する
では、第3回で行った「過去の故障歴」を予測する学習モデルを様々な方法を用いて作成してみましょう。
目的変数はカテゴリ型である必要がありますが(LASSO以外)、それ以外の変数は整数型で読み込んだ方がいろいろな手法を用いることができます。
ランダムフォレストやニューラルネットワークでは、上の例の「カバーの有無」などについてカテゴリ型としても整数型としても使うことができます。しかし内部的にはほぼ同様の処理がなされるので結果はさほど変わりません。ですので、SVMやロジスティック回帰が使えるように整数型で読み込む方が選択肢が広がってお得というわけです。
いろいろな手法で「過去の故障歴」を予測するモデルを構築してみました。その概要を示したのが図3と図4です。目的変数以外、すべて整数型で読み込んだ結果が図3です。また、「カバーの有無」「リングの有無」などカテゴリ型と解釈できる変数をカテゴリ型としたのが図4です。読み込み方によるい違いは、精度に影響はほとんど及ぼしませんが、手法によって精度が異なることがよくわかると思います。
生徒たちが行う場合は、生徒をいくつかのグループにして、各自が別々の手法を試してみると良いですね。
それぞれの手法は、目的やデータの構造などによって得手不得手があります。データサイズや種類によって、どの手法を用いれば良いかをざっくりとまとめたチートシートや記事がたくさんありますので、ここでは割愛しますが、これも良い教材になりますので、是非ご利用ください。
4. 手法によるAIへの影響を考える
それぞれの手法の持つ違いを利用した、生徒たちへの課題の一例として
どの手法を使ったか
その手法を選んだ理由は?
その手法はどんなものか
その手法への不満点は?
といったことをまとめるワークを行うと、AIに対する理解がより深まります。単なる調べ学習ではなく、実際にどうなるかをいじりながら検討できる良い教材と考えます。
もちろん、手法選択の理由が「最も精度が高かったから」はなしにしたいところです。実際のAI開発現場でも、機械学習の予測結果が何らかの事故を起こしたときに、なぜその手法を選んだのかについて、開発者側に理由が問われます。
一例として、自動運転で死亡事故が起きた時のことを考えると良いかもしれません。最高性能を達成しなくても、事故を起こさない、そして、事故が起きた場合でもその原因が分かるAIの方が、社会に受け入れられるのです。この様な話から、AI活用における倫理問題などに入っていくのも、社会と技術の接点を生徒たちに考えてもらう良い教材になると思います。
5. データサイズの違いによるAIへの影響を考える
学習モデルの予測精度は、学習をするたびに異なる値になります。これは学習する際に学習データとテストデータをランダムに振り分けることに起因したものです。また、ランダムフォレストなど、手法の中にランダム要素が含まれる場合はそれも原因の一つになります。
何度か試してみていただくとわかりますが、そのときどきによって上振れ、下振れが大きいことがわかると思います。これはこのスマホ故障歴に関するデータが小さい(39サンプル)ためだと考えられます。
第4回で用いた顧客データは、スマホ故障歴データより大きい(549サンプル)ので精度にブレが生じにくいです。当然ですが、学習モデルは学習データのことしか知らないため、できるだけ多くのデータで学習させた方がよりよいモデルを作ることができるわけです。
それでは、データサイズ以外にデータセットが満たすべき条件とはなんでしょうか。
この問いは非常に重要な問いです。逆から読むと、「それが満たされないデータセットでAIを作ったときに起こる問題はなんですか?」ということです。
これは現在盛んに議論される、AIがもつ「バイアス」とも関連がある話です。バイアスとは偏りのことで、AIにバイアスがかかってしまった結果、例えば知らず知らずのうちにジェンダーバイアスが生じる現象などが問題になっています。
6. 本稿のまとめ
さて、今回は一旦総務省のテキストから外れて、CatDataで使える学習手法の選択方法や、データの読み込み方を通じ、データが学習モデル(=AI)に与える影響について考えるきっかけを提示してみたつもりです。
次回は総務省のテキストに戻り、ニューラルネットワークを用いた画像解析の話をしたいと思います。プラットフォームをル CatData から Humanome Eyes に移します。
なお、今回の記事内で使用した図はPDFにまとめました。以下のリンクよりダウンロードして下さい。授業でのスライド用途などにご利用いただけます。また、本連載は下記リンクからまとめて読むことができます。
それではまた次回もぜひお読み下さい!
連載第5回図版資料
7. データ解析・AI構築の初学者向け自習テキスト
表データを利用したAI学習テキスト(Humanome CatData)
画像・動画を利用したAI学習テキスト(Humanome Eyes)
AI・DX・データサイエンスについてのご質問・共同研究等についてはお気軽にお問い合わせ下さい!