俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

『機械学習システムセキュリティガイドライン Version 2.00』を読む【I-2. 機械学習システム特有の攻撃】

前回に引き続き、日本ソフトウェア科学会機械学習工学研究会から2023年9月に公開された『機械学習システム セキュリティガイドライン Version 2.00』を数回に分けて、自分なりにゆっくり読み解いていきたいと思います。

今回は、『本編』の「I-2. 機械学習システム特有の攻撃」を読み解きました。

github.com

AIの開発や運用、サービス提供を行う皆さんの参考になる情報をご提供できればと思います。

また、G検定でも時事的な法律や制度などの問題も出題されているということなので、受験される方の何かの参考になれれば幸いです。

【目次】

1.ガイドライン全体の構成

機械学習システムセキュリティガイドライン Version 2.00』は、付録も含めて、大きく三つに分かれています。機械学習システム特有の攻撃とその対策を説明した『本編』と、機械学習セキュリティの非専門家に向けた脅威分析・対策を記載した『リスク分析編』と、付録の『攻撃検知技術の概要』になります。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 

ページ[I-1]

「I-1. ガイドライン概要」については、以下で記事にしておりますので、ご参照ください。

【I-1. ガイドライン概要】

2.今回読んだ範囲の概要

今回は、『本編』の「I-2. 機械学習システム特有の攻撃」を読み解きました。

機械学習システム特有の脅威 」、「脅威による被害例」、「脅威を引き起こす攻撃 」「攻撃方法 」について記載されています。

3.「I-2.1. 機械学習システム特有の脅威 」を読み解く

機械学習システムに特有の脅威は、以下の3つに分類され、これらは機械学習システムに対する正規の権限でのアクセスによって引き起こされる可能性もあると言及されています。

  •  モデルやシステムの誤動作
  •  モデルの窃取
  • 訓練データの窃取

出所:機械学習システムセキュリティガイドライン Part I.「本編」 

ページ[I-9]

「I-2.1.1. モデルやシステムの誤動作」では、機械学習システムのモデルを誤動作させ、システムに本来期待される動作が阻害される可能性があると言及されています。モデルやシステムの誤動作は、例えば自動運転システムの事故誘発やマルウェア検知の回避などの被害につながり得ます。攻撃手法としては、推論時のモデル・システムへの入力による攻撃や訓練データ・訓練モデルを汚染する攻撃が挙げられています。また、モデルやシステムの説明性機能だけを誤動作させることもあり、システムの透明性にも悪影響を与える可能性についても言及されています。

「I-2.1.2. モデルの窃取」では、機械学習システムのモデルのコピーまたは近い性能のモデルを攻撃者が作成するという脅威があげられています。モデルの窃取は、知的財産権への直接的な被害だけでなく、複製されたサービスや他の攻撃への被害にもつながり得ます。攻撃手法としては、モデルやシステムへの入力による攻撃が挙げられています。

「I-2.1.3. 訓練データの窃取」では、機械学習システムのモデルの訓練に使用されたデータそのものまたはその情報が攻撃者によって推測される脅威があげられています。被害としては、個人情報の漏洩などのプライバシー保護への被害が考えられます。攻撃手法としては、モデルやシステムへの入力による攻撃が挙げられています。

4.「I-2.2. 脅威による被害例」を読み解く

ここでは、前述の脅威について、発生の可能性がある事例と、それが起きた場合の想定被害をが説明されています。

I-2.2.1. モデルやシステムの誤動作の脅威による被害例 AIマルウェア対策製品がマルウェアを良性と誤認識すると、コンピュータへの不正侵入が可能になり、機密情報漏洩や損害が発生。損害額が膨大で、開発企業は損害賠償の可能性。
I-2.2.2. モデルの窃取の脅威による被害例 近年AI開発において主流となっているMachine Learning as a Service (MLaaS) でのモデル複製により、本来の開発費用をかけずに競合他社が同じサービスを提供可能。モデルの複製による脆弱性悪用が引き金となり、追加被害の可能性。
I-2.2.3. 訓練データの窃取の脅威による被害例 画像生成AIのキャプション工夫により、データ提供者の画像データが第三者に複製され、プライバシー侵害の可能性。特に医療情報の漏洩により、患者の精神的な被害と損害賠償のリスクが高まる。

5.「I-2.3. 脅威を引き起こす攻撃 」を読み解く

ここでは、前述の脅威について、脅威を引き起こす機械学習システム特有の攻撃として以下の代表的な5つの攻撃があげられています。

I-2.3.1. 回避攻撃(evasion attack) モデルやシステムの誤動作を引き起こす攻撃。入力データに微細な変更を加え、システムが予期せぬ動作をするように誘導。有名なのは敵対的サンプル攻撃で、微細なノイズを加えてモデルを誤判断させる。
I-2.3.2. ポイズニング攻撃(poisoning attack) モデルやシステムの誤動作を引き起こす攻撃。攻撃者が細工したデータやモデルを訓練データやモデルに混ぜ込み、誤動作を引き起こすバックドア攻撃では特定のパターンが含まれた入力で誤判定。
I-2.3.3. モデル抽出攻撃(model extraction attack) モデルの窃取を引き起こす攻撃。機械学習システムへの入力と出力を分析して、同等の性能を持つモデルを作成する。モデルの知的財産を侵害する手法。
I-2.3.4. モデルインバージョン攻撃(model inversion attack) 訓練データの窃取を引き起こす攻撃。入力と出力を分析して、訓練データに含まれる情報を復元する。訓練データのプライバシー侵害が懸念される。
I-2.3.5. メンバシップ推測攻撃(membership inference attack) 訓練データの窃取を引き起こす攻撃。入力と出力を分析して、ある対象のデータがモデルの訓練データに含まれているかを特定する。データの所属を推測する攻撃。

 

6.「I-2.4. 攻撃方法」を読み解く

ここでは、攻撃者が有している知識や攻撃対象に依存して、攻撃方法が異なることに言及されています。

「I-2.4.1. 攻撃者の知識」について、前述の攻撃は、攻撃者の知識に基づいて、攻撃は他のシステムと同様にホワイトボックス攻撃とブラックボックス攻撃に分類される旨が記載されており、ホワイトボックス攻撃はモデルに関する内部情報を利用し、ブラックボックス攻撃は内部情報なしにモデルの入出力情報だけを使用すると定義されています。攻撃者が機械学習システムに関する情報を多く知っているほど、攻撃リスクが高まります。情報が公開されている場合や部分的な情報が流出した場合でも、注意が必要だとしています。

攻撃者の知識 ホワイトボックス攻撃 ブラックボックス攻撃
概要 モデルの内部情報(アーキテクチャ、パラメータ、訓練方法など)を利用 モデルの内部情報を用いず、入出力情報のみを使用

「I-2.4.2. 攻撃対象」について、物理ドメインとデジタル表現が挙げられています。物理ドメインとは実世界の情報をセンサーで取得し、デジタル化される前の状態です。デジタル表現とは情報がデジタル化された後の状態です。例えば、道路標識を認識するAIに対する攻撃として、特殊な模様のシール(敵対的パッチ)を標識に貼り付ける物理ドメインの攻撃や、デジタル表現の攻撃として、カメラで撮影されたデジタルデータにノイズを加えてAIを誤判定させる攻撃が挙げられています。

攻撃対象

物理ドメイン デジタル表現
概要 実世界の情報を取得し、デジタル化される前の状態 情報がデジタル化された後の状態
特殊な模様のシールを物理的に標識に貼り付ける攻撃 カメラで撮影されたデジタルデータにノイズを加える攻撃

7.おわりに

今回は、『機械学習システム セキュリティガイドライン Version 2.00』の『本編』の「I-2. 機械学習システム特有の攻撃」を読み解いてきました。

機械学習システム特有の攻撃として、正規の権限でのアクセスによって引き起こされる可能性がある点や、実世界情報がデジタル化される前の物理ドメインでの攻撃に留意する必要がある点について、他のシステムよりも十分注意が必要だと感じました。また、脆弱性パッチの適用の必要性やソーシャルエンジニアリング対応の必要性など、これまでのシステムのセキュリティの観点も応用できるのではないかと感じました。引き続き読み進めていきたいと思います。

では、次回は「I-3. 機械学習システムのセキュリティ」を読み解いていきたいと思います。

 

『機械学習システムセキュリティガイドライン Version 2.00』を読む【I-1. ガイドライン概要】

今回より、日本ソフトウェア科学会機械学習工学研究会から2023年9月に公開された『機械学習システム セキュリティガイドライン Version 2.00』を数回に分けて、自分なりにゆっくり読み解いていきたいと思います。

github.com

AIの開発や運用、サービス提供を行う皆さんの参考になる情報をご提供できればと思います。

また、G検定でも時事的な法律や制度などの問題も出題されているということなので、受験される方の何かの参考になれれば幸いです。

【目次】

1.ガイドライン全体の構成

機械学習システムセキュリティガイドライン Version 2.00』は、付録も含めて、大きく三つに分かれています。機械学習システム特有の攻撃とその対策を説明した『本編』と、機械学習セキュリティの非専門家に向けた脅威分析・対策を記載した『リスク分析編』と、付録の『攻撃検知技術の概要』になります。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 

ページ[I-1]

2.今回読んだ範囲の概要

今回は、『本編』の「I-1. ガイドライン概要」を読み解きました。

最初に触れたガイドラインの全体構成に加え、「目的・背景」、「スコープ」、「本ガイドラインで扱う機械学習システム」について記載されています。

3.「I-1.2. 目的・背景 」を読み解く

「I-1.2. 目的・背景 」では、本ガイドラインを作成した背景や目的が記載されています。

背景として、機械学習の発展に伴いAIシステムが広く活用され、その中でも自動運転や金融取引など社会インフラに結びつく領域での利用が増加してる点があげられています。これにより、機械学習システムのセキュリティに対する懸念が高まり、特に敵対的サンプルや機械学習特有の攻撃に対する脆弱性が指摘されています。

目的として、開発者に対して機械学習セキュリティに関する知識を提供し、特に攻撃手法とその実行条件を判断できる基準を提供することが挙げられています。機械学習セキュリティの専門家が限られている中で、これに対処するためには一般のAI開発者もセキュリティを考慮できるようになる必要があります。そのため、機械学習セキュリティガイドラインが整備され、開発者が適切なセキュリティ対策を行えるようにすることが狙いとされています。

また、経済産業省の「我が国の AI ガバナンスの在り方 ver. 1.1」でまとめている以下のAIガバナンスの構造上では、「法的拘束力のないガイドライン」に該当し、AI原則でとりあげられる「セキュリティ」を尊重するための取組とされています。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 
ページ[I-3]

4.「I-1.3. スコープ」を読み解く

このガイドラインのスコープとして、「対象者とガイドラインの使われ方」、「他のガイドラインや企画との位置づけ」、「他の機械学習セキュリティ対策文献との位置づけ」、「一般的な情報セキュリティとの関連」の4点から記載されています。

「対象者とガイドラインの使われ方」として、機械学習セキュリティの専門知識がない機械学習システムの開発者やサービス提供者を対象にしており、総務省の「AI利活用ガイドライン」のAIの利活用の流れにある「計画」や「AI構築」、「運用・利用」の各フェーズで利用されることを想定していると記載されています。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 
ページ[I-4]

「他のガイドラインや規格との位置づけ」として、国内外で公開されている機械学習や製品セキュリティに関するガイドラインや規格と調和し、現行の法令やAI社会原則とも矛盾しない形で、以下の図のように機械学習システムに特有のセキュリティ対策に焦点を当てるとされています。具体的には、日本で2019年に公表された「人間中心の AI 社会原則」や欧州のAI規制法、米国のAI Risk Management Framework (AI RMF)、産総研機械学習品質マネジメントガイドライン、ISO/IEC 15408シリーズ、ISO/IEC 27001などに言及されています。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 
ページ[I-4]

「他の機械学習セキュリティ対策文献との位置づけ」として、他の文献とは異なり、本ガイドライン機械学習システム特有の攻撃とその防御に焦点を当て、既存の対策文献で体系的に整理できていない一連のセキュリティ対策に対応し、開発者や専門家とのコミュニケーションを促進できるように整理されています。また、セキュリティ対策実施のハードルを下げるために機械学習セキュリティの専門知識がなくとも実施できる手法も提案されています。

最後に、「一般的な情報セキュリティとの関連」として、機械学習システム特有の攻撃と一般的な情報セキュリティの関連性に焦点を当て、機械学習システムにおけるセキュリティ対策と一般的な情報セキュリティの優先度を統合的に検討する必要性を強調しています。

5.「I-1.4. 本ガイドラインで扱う機械学習システム」を読み解く

このガイドラインで扱う機械学習システムとは、機械学習を用いたシステムを対象とし、その機械学習処理部を訓練パイプラインと推論パイプラインに分け、訓練データを用いて訓練処理を行い、訓練済みモデルを生成し、推論データを用いて推論処理を行う一般的な構成を対象としています。

出所:機械学習システムセキュリティガイドライン Part I.「本編」 
ページ[I-7]

出所:機械学習システムセキュリティガイドライン Part I.「本編」 
ページ[I-8]

6.おわりに

今回は、『機械学習システム セキュリティガイドライン Version 2.00』の「目的・背景」、「スコープ」、「本ガイドラインで扱う機械学習システム」を読み解いてきました。

これまでセキュリティに関するガイドライン等は全システムを対象としており、機械学習システムに関するガイドライン等はセキュリティ以外も含めたリスク全体を対象としていたため、本ガイドラインのような、「機械学習システムに特有」かつ「セキュリティ」に着目したガイドライン機械学習の開発者やサービス提供者にはとても参考になるガイドラインだと感じました。

では、次回は「I-2. 機械学習システム特有の攻撃 」を読み解いていきたいと思います。

 

CISSP(Certified Information Systems Security Professional) 合格体験記(受講講座や問題集、学習法)

約1年の取組を経て、CISSP(Certified Information Systems Security Professional)に挑戦して無事合格できました!

試験の内容や問題についてはNDAがあるので言及できませんが、私が受講した講座や問題集、学習法について紹介させていただきます。

 

CISSPとは、ISC2(International Information Systems Security Certification Consortium)が認定を行っている国際的に認められた情報セキュリティ・プロフェッショナル認定資格です。

企業によっては、CISSP認定資格の取得が情報セキュリティ関連業務従事者の必須事項とされており、特に外資系企業のセキュリティ担当者にはおすすめの資格です。

これからの受験を検討されている皆さんの参考になる情報をご提供できればと思います。

【目次】

1.受験の動機

AI関連のスキルを磨く中で、このスキルを活かす先として、自身のもともとのドメインであるセキュリティ分野の専門家として、組織的な戦略的な判断やガバナンスの知識を掘り下げるべく、CISSPの取得にチャレンジしました。

また、AIや機械学習などのテクノロジーと、セキュリティは相互に影響を与えており、CISSPはこれらの新しいトレンドやテクノロジーに対応する基盤となる知識を習得すべく受験しました。

AIを使用した脅威分析やセキュリティ対策の開発に関するスキル、AI自体を適切に扱うためのセキュリティスキルは、今後ますます重要になってくると考えています。

2.私の前提知識

受験を決意して勉強を始めたときの私の前提知識は以下のような状況です。

3.勉強方法

勉強期間は約1年間でしたが、本業とコンペの合間に進めていたので、本格的に取り組んだのは2か月程度でした。今思えば、もっと短期集中で取り組んだほうが効率的だったのではないかと反省しています。

 

勉強の流れは以下の通りです。

ステップ1:試験の把握(初日)

まずは、以下の試験概要、CISSP CBKドメイン概要から、試験の範囲や対象となるドメイン知識を確認しました。

2023年9月26日時点で、試験時間は6時間、問題数250問となっています。(最新の情報は、リンク先にてご確認ください。)

他の試験に比べて、試験時間、問題数ともにかなりヘビィな量なので、結構覚悟が必要な試験となっています。

試験概要(Webサイト)

CISSP CBKドメインは以下の通りです。

  1. セキュリティとリスクマネジメント
  2. 資産のセキュリティ
  3. セキュリティアーキテクチャとエンジニアリング
  4. 通信とネットワークのセキュリティ
  5. アイデンティティおよびアクセス管理
  6. セキュリティの評価とテスト
  7. セキュリティの運用
  8. ソフトウェア開発セキュリティ

試験範囲も8ドメインと広範囲にわたっています。

CISSP CBKドメイン概要|ISC2 Japan (Webサイト)

 

ステップ2:ISC2 公式CISSP CBKトレーニング(1週目)

まず、学習のとっかかりとしては、以下のISC2 公式CISSP CBKトレーニングを受講いたしました。年間で複数の講座が開講しているので、ご自身の都合の良い日程で受講いただけれるとよいと思います。

ISC2 公式CISSP CBKトレーニング

私自身は、実務経験が長く、他のセキュリティ関連資格を取得していたので、結構既存の知識の再確認に近い内容でした。こちらの講座か、後述するUdemyの講座のどちらかの受講でも十分だったかなと思いました。

しかしながら、テキストもかなり分厚く範囲も広いので、これからセキュリティの業務に携わっていくという方が受験される場合には、この講座で体系的に要点を絞って学習されるとよいと思います。

ステップ3:UdemyのCISSP講座を受講する(受験2ヵ月前)

公式トレーニングの後は、隙間時間を利用してテキストに目を通す程度の学習を継続しました。

その後、年度の業務の見通しがたった7月末に、受験日を9月24日に決定し、残りの約2か月集中的に学習することを決意しました。

決意後の学習として、以下のUdemyの講座を受講しました。(有料ですが、セール中などの期間には1ドメイン2,000円弱で受講できます。)

ドメイン1時間~3時間程度で受講でき、各ドメインごとに知識を確認する問題もついているので、受講後の自分の理解度を確認することができます。

  1. 【日本語】初心者から学べるCISSP講座:CISSP Domain1 ビデオ学習 | Udemy
  2. 【日本語】初心者から学べるCISSP講座:CISSP Domain2 ビデオ学習 | Udemy
  3. 【日本語】初心者から学べるCISSP講座:CISSP Domain3 ビデオ学習 | Udemy
  4. 【日本語】初心者から学べるCISSP講座:CISSP Domain4 ビデオ学習 | Udemy
  5. 【日本語】初心者から学べるCISSP講座:CISSP Domain5 ビデオ学習 | Udemy
  6. 【日本語】初心者から学べるCISSP講座:CISSP Domain6 ビデオ学習 | Udemy
  7. 【日本語】初心者から学べるCISSP講座:CISSP Domain7 ビデオ学習 | Udemy
  8. 【日本語】初心者から学べるCISSP講座:CISSP Domain8 ビデオ学習 | Udemy

 

取り組み方としては、各ドメインごとに動画視聴→確認問題を一通り実施して、最後にまとめて全ドメインの確認問題を解きました。この講座はこれからセキュリティを目指す方にもわかりやすい内容になっていると思います。

ステップ4:CISSP公式問題集をひたすら解く(受験1か月前)

Udemy受講後は、以下のCISSP公式問題集をひたすら解きました。

ドメイン約100問と、125問の模擬試験が4回分入ってお得な問題集です。

電子書籍なので、移動時や隙間時間にも、さっと数問解くことができるのが非常に効率的でした。

CISSP公式問題集【電子書籍】[ マイク・チャップル ]

ドメインを3周と模擬試験を2周したところで試験を迎えることになりました。

どのドメインでも、90%程度の正解率を目指して取り組みました。

正解率の推移は以下の通りでした。ドメイン3~6が低迷しておりましたが、何とか試験までに間に合わせました。

ドメイン

  domain1 domain2 domain3 domain4 domain5 domain6 domain7 domain8
1周 94% 89% 67% 69% 63% 63% 81% 76%
2周 93% 93% 85% 84% 78% 81% 91% 92%
3周 96% 94% 99% 95% 91% 95% 99% 99%

【模擬試験】

  模擬1 模擬2 模擬3 模擬4
1周 77% 67% 74% 73%
2周 89% 89% 94% 90%

模擬試験は125問で本番の半分の問題数なので、回答するスピードについても本番を想定して取り組むことができました。

4.試験当日

CISSPの試験は、オンラインでの受験はできず、試験センターでのCBT試験(Computer Based Testing)となります。

久しぶりの受験会場での資格試験でしたが、試験センターは何となく海外の雰囲気が漂っていて、受付でパスポートを出したり、静脈認証をしたり、写真を撮影したりして、ちょっとした入国審査気分を味わいながら、緊張もせず受験できました。

【持ち物】

持ち物は以下の通りです。(要件が変わる場合がありますので、必ず最新の情報をご確認ください。)

  • 身分証明書×2
    写真付きと署名付きの2種類が必要とのこと、私はパスポートと運転免許証を持っていきました。
  • 軽食、飲み物
    6時間の長丁場ですので、軽く食べられるものと飲み物が必要です。
    手が汚れないようにバータイプの栄養補助スナックを2本とペットボトルの水とお茶を持っていきました。
  • ビニール袋
    試験中荷物をロッカーに預けるのですが、休憩中に飲食するものはカバンから出して、ロッカーに入れる必要があるので、軽食、飲み物のみを入れておく透明の袋があるとよいです

逆に持っていかなかったものは、参考書などの書籍です。

家を出発したら試験だと思って腹をくくって自宅に置いていきました。

結果としては、現地では参考書を見る場所も時間もなかったので、正解でした。

【時間】

受験時間は朝8時から14時までの6時間で、開始時間の30分前には会場について受付をする必要があります。交通トラブルも考慮して早めに出発すると精神衛生上もよいと思います。

試験問題は1問ごとに回答していく形式で、元に戻ったり回答を修正したりできないので、見直しの時間は考慮せずじっくりと取り組むことができます。

また、試験中に挙手して係りの人に試験画面をロックしてもらうことで試験部屋を退室し、受付の部屋で飲食をすることも可能です。

6時間ぶっ通しでは集中力が続かないので、事前に「何問解いたら休憩」、「何分過ぎたら休憩」といった目安を予め決めておくとよいと思います。

5.試験結果

試験終了後、受付ですぐに暫定的な試験結果が記載されたA4の用紙を受け取ることができます。

結果は無事「合格」でした!

正式な試験結果は後日通知されるとのことですが、まずは一安心です。

暫定とは言え、当日すぐに結果を受け取れるのは精神衛生上も今後の予定を立てるうえでも非常にありがたいです。

あとは、正式な合格通知を受け取って、資格認定手続きを実施したいと思います。

6.感想

CISSPの取得に向けた学習は、これまでの経験と知識を体系的に整理できる貴重な機会となりました。CISSPの知識を活用して、組織のセキュリティ戦略の策定、リスク評価、セキュリティポリシーの設計において、専門的なアドバイスを提供し、組織のセキュリティ水準の向上に貢献したいと考えています。

さらに、これまで蓄積してきたAIに関する知識をCISSPの専門知識と結びつけ、セキュリティを組み込んだAIアプリケーションやシステムの設計に貢献し、データの機密性と可用性の確保に寄与したいと思います。

試験範囲が広く、問題数も多かったため、試験の準備は一苦労でしたが、その分試験をクリアした際の達成感は大きいものでした。CISSPはセキュリティ業界でのキャリア発展に向けた価値ある資格であり、セキュリティに携わる方々に強くお勧めしたい資格だと思います。

この記事が、将来CISSP試験を受験しようとしている方々のお役に立てれば幸いです。

 

 

【3位解法】Probspace開催「野菜取引価格の予測」の振り返り。

データ分析好きが集まる交流プラットフォーム「ProbSpace」で開催された「野菜取引価格の予測」に参加し、3位(金)の成績を残せました!

今回のコンペは、複数項目の時系列データ予測タスクだったのですが、久々に上位争いに食い込める結果を残すことができました。

途中少し間が空いてしまうこともありましたが、最初から最後までじっくりと腰を据えて取り組むことができた良いコンペでした。

では、振り返って参りたいと思います。

1.全体構成

今回のコンペは、NEDO(産業技術総合開発機構)、大学、ベンチャー企業などでもモデルの開発が進められている野菜の価格変動を予測するタスクです。

42品目の野菜について消費地域ごとの340個の価格を、過去約4年分の価格と気温や日照時間等の気象情報から予測します。

野菜についてどのような分類をして予測するか、天候情報をどのように加工して、何を選択するかで知恵を絞りました。

全体構成としては、大きく分けて以下の2つの構成で構築し、それぞれの予測値の平均を最終的な提出としました。

地域に関しても考慮に入れようか悩んだのですが、今回の価格は生産地ではなく消費地の価格とのことでしたので、地域別の予測はあまり影響しないと仮定して、野菜の種類だけに注目することとしました。

2.特徴量加工・選択

特徴量については、価格の時系列データのほかに天候情報(天候観測所348箇所ごとに、2015/1~2019/11の月次の天候データ)について以下の通り加工し、分類した野菜毎に、選択して学習に利用しました。

【特徴量の加工】

分類 処理内容

元データ

  • 天候情報の元データを日照時間、降水量、降雪量、最高気温、最低気温、平均気温の6つに分類

累積和

  • 日照時間、降水量の合計、降雪量合計、平均気温、最低気温25℃以上日数、最高気温25℃以上日数、最低気温0℃未満日数、最高気温0℃未満日数、日照時間0.1時間未満日数について、累積和を特徴量として追加。
  • 累積については、2か月、3か月、4か月、6か月、12か月のパターンで累積和を計算。

差分

  • 最高気温と最低気温の差、平均気温と最低気温の差、最高気温と平均気温の差、最高気温の平均と最低気温の平均の差を特徴量として追加。

閾値以上、以下のフラグ

  • 日照時間につき、100,150,200,250,300を閾値として以上、以下のフラグを特徴量として追加。
  • 降水量の合計につき、10,50,100,200,300,400,500を閾値として以上、以下のフラグを特徴量として追加。
  • 降雪量の後継につき、5,10,30,50,100,150,200を閾値として以上、以下のフラグを特徴量として追加。
  • 最高気温の平均、最低気温の平均、平均気温につき、5,10,15,20,25,30,35を閾値として以上、以下のフラグを特徴量として追加。

【特徴量の選択】

上記の各特徴量について、野菜の分類ごとに特徴量を選択して学習・予測を行いました。


3.モデル構築

 モデルは野菜分類ごとに学習・予測を行いました。

それぞれのモデルは基本的にはProbSpaceのトピックに投稿させていただいている以下のモデルを基本として、LSTMの部分にSimpleRNN、GRUを利用した3種類のモデルにつき、野菜分類ごとにハイパーパラメーターを調整して作成しています。

 LSTM Base line−コメント付き (LB 0.27614 ) by Oregin ; ProbSpace

野菜分類ごとの予測値を、2つの構成それぞれで集約した予測①と予測➁の平均を最終予測値としました。

このモデルで提出したファイルで、最終スコア:0.09673 となり、全体で3位で、金トロフィー圏内に入ることができました。

4.感想

今回のコンペは、野菜の価格を予測するという時系列データを扱った課題でした。

3位という結果を残せて満足しているのですが、悔いが残る点としては、以下の2点です。

1点目は、最初の段階で地域による予測の分類は行わなかったので、該当する野菜の主な産地の天候情報に絞るなどの工夫で、もう少し精度があげられたのではないかという点です。

2点目は、価格について、そのままの値を利用して予測しましたが、対数化を試すことをすっかり忘れてしまっており、対数化することでも精度があげられたのではないかという点です。

他にも細かいところは色々できたのではないかと考えています。

皆さんの解法を参考にさせていただきながら、今後のコンペに生かしていきたいと思います。

5.謝辞

最後となってしまいましたが、本コンペを運営してくださいました、Probspase の運営の皆様、一緒にコンペに取り組んでいらっしゃった皆様、Twitter上でやりとりを実施させていただいた皆様に心より感謝申し上げます。

今年上期は、コンペで知り合った皆様と実生活でも交流させていただく機会も増えてきました。

これからも色々な皆さんと交流することで、現実世界での社会の発展のために貢献できるよう頑張っていきたいと思います。

今後とも、よろしくお願いいたします。

2023年上半期の振り返り(積み上げの結実、実社会での貢献へ)

2023年上半期は、これまで積み上げてきた知識や技術が結実しはじめ、色々な活動に参加させていただけるようになりました。

やっと、つまみ食い的に取り組んできた内容がつながり始めて、一つの形としてまとまり始めています。立ち止まらず、安心せず、継続的に取り組みを続けることで、結果につながることが実感できてきました。

引き続き、「ゆっくりでも止まらなければけっこう進む」の精神で頑張って行きたいと思います。

【目次】

【コンペ関連】

1.日本ディープラーニング協会主催 「CDLEハッカソン2022」で最優秀賞受賞

毎年参加している日本ディープラーニング協会主催の「CDLEハッカソン2022」で念願の最優秀賞を受賞いたしました。 www.jdla.org

今年度のテーマは、「デジタル・データを活用してウェルビーイングな年を実現するサービスソリューションの開発」で、メンターのABEJAさんのご協力を得ながら、人流データと、オープンデータの駅周辺の幸福度・事故発生率・犯罪発生率を活かし、ユーザーに最適な物件をレコメンドするサービスを提案し、最優秀賞を受賞することができました。
CDLEハッカソン2022の様子はYoutubeでも公開されているので、ご参照ください。

www.youtube.com

2.ProbSpace で総合ランキング1位をキープ

昨年に引き続き、データ分析好きが集まる交流プラットフォーム「ProbSpace」で開催されたコンペに参加し、総合ランキング1位を継続しています。

2023年上期は、研究論文の国際学会採択予測で26位(銅)とあまり上位に入れなかったものの現在開催中の「野菜取引価格の予測」では現時点で暫定2位と奮闘中です。

久々の金圏獲得、あわよくば賞金ゲットも見えてきているので、引き続き取り組んでいきたいと思います。


2.Kaggle、Solafuneなどのコンペに参戦

ProbSpace以外にも、散発的にデータ分析コンペティションサイトKaggle」、「Solafune」にも参戦いたしました。

結果としては以下の通り。

Kaggle

Solafune

Kaggleでは、締め切りまでは何とか銅圏内は入れても、Shakeダウンすることが多く、汎用性の大切さを身を染みて感じている次第です。

業務に応用するためには、汎用性が重要になってくるので、引き続き精進してまいりたいと思います。

 【積み上げ関連】

1.数学関連の復習

コンペ関連で、課題のレベルも参加者のレベルもどんどん上がっており、メダル獲得も難しくなってきており、このままでは、いけないと思い。今一度、数学から復習をしました。
復習に使った書籍は以下の通りです。

2.生成系AI、自然言語処理の学習

また、AIのトレンドにもついていけるように話題の技術についても学習しました。

ChatGPTについては、一気に巷にも浸透しており、そのスピードに驚きを隠せません。

置き去りにならないように、今後も新しい技術を身に着けていきたいと思います。

また、GPTについてはAPIの実装にも挑戦してみました。
今後もいろいろな実装に取り組んでいきたいと思います。

oregin-ai.hatenablog.com

 【研究開発関連】

1.某大学と共同研究に参画

詳細は今後、公開させていただきますが、某大学と共同研究に参画させていただけることになりました。

今まで、個人で趣味の範囲でいろいろと取り組んできておりましたが、正式に研究活動として取り組むことができるのは非常にうれしいです。

このような機会を今後も増やしていけるように引き続き取り組んでまいりたいと思います。

2.日本ディープラーニング協会「AIガバナンスとその評価」研究会に参画

日本ディープラーニング協会の「AIガバナンスとその評価」研究会に引き続き参画させていただいております。

この研究会では、AIで構築されるシステムを開発者から利用者まで様々なステークホルダーを交えて管理・評価などの在り方を「ガバナンス」として定義して、信頼に足るAIの社会実装を目指した研究を行っています。

具体的には、AIに潜む様々なリスクについて、評価して管理していく社会全体の仕組みとして「AIガバナンスエコシステムの構築」を提言しています。

おわりに

2023年上期は、JDLAのCDLEハッカソン最優秀賞に始まり各種研究活動に参加させていただけるなど、個人の範囲を超えた活動ができるようになってきた半期でした。

また、いろいろなところで知り合うことができた皆さんと協業したり、ご協力させていただいたりする機会も非常に増えてきました。

引き続き、技術面でのスキルを磨くとともに、実社会で貢献できるよう取り組んでまいりたいと思います。

2023年もあと半年になりました。

残りの期間も少しずつ少しずつ前進していきたいと思います!

 

【これまでの道のり】

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

 

OpenAI(GPT-3)のAPIを使って質問するコードをGoogle Colaboratory で実装してみた。

今回は、OpenAI(GPT-3)ChatGPTAPIGoogle Colaboratoryから呼び出して、質問の回答を得るコードを書いてみました。
まだ、お試し段階ですが、いろいろ使えそうで、夢が広がります!
当初ChatGPTのAPIを使ったコードと紹介してしまったのですが、私の勘違いで、正確にはOpenAI(GPT-3)のAPIでした。訂正してお詫び申し上げます。

サンプルコードを以下に公開しています。API keyをご自身のキーに修正のうえご利用ください。
github.com

1.アカウントを作成する

OpenAIのウェブサイトにアクセスし、Sign up ボタンをクリックしてアカウントを作成してください。

2.APIキーを作成する

ダッシュボードにアクセスする。

アカウントが作成されたら、OpenAI APIにログインし、右上のpersonalをクリックします。

API Keys画面を開く

「View API Keys」をクリックし、「API Keys」画面を開きます。「Generate New Key」をクリックします。

新しいKeyを作成する。

「Create new secret key」をクリックして新しいAPI Keyを作成します。

API Keyを保存する。

生成されたAPIキーが表示されるので、コピーして安全な場所に保存してください。
APIキーは機密情報であるため、他の人に共有しないようにしてください。
また、APIキーを設定する前に、必ずOpenAIの利用規約を確認してください。

3.Google ColaboratoryからAPIを呼び出す

openaiのインストール

まずは、openaiライブラリをインストールします。

!pip install openai

APIを呼び出して応答を得る関数を定義

このコードでは、先ほど保存したOpenAI APIキーを"YOUR_API_KEY"に設定し、ask_gpt関数を定義しています。
この関数は、引数で指定した引数(prompt)を、APIに対して送信し、APIの応答(message)を返します。
APIに渡すengine引数は使用するGPTの種類を指定しており、この例ではdavinciを使用しています。
また、max_tokens引数は最大トークン数を設定しています。

import openai
openai.api_key = "YOUR_API_KEY"

def ask_gpt(prompt):
    response = openai.Completion.create(
      engine="davinci",
      prompt=prompt,
      max_tokens=1024,
      n=1,
      stop=None,
      temperature=0.7,
    )

    message = response.choices[0].text
    return message.strip()

定義した関数を使って質問してみる

関数を呼び出すには、以下のようにprompt引数に質問するテキストを指定します。

response = ask_gpt("データ分析コンペのいいところ")
print(response)

実行結果は、時と場合によって異なると思います。
ちなみに、上記の例では、APIに "データ分析コンペのいいところ"というテキストを送信し、以下の応答を得ました。

実際に知ってる人に聞くのが一番ですね。いろいろな経験をしている人は、これまでの自分の経験をどのように整理して、どのように活かしているのか。そういうことを聞いた方がいいです。
そうして、どういったアイデアを出しているのか、そのことについても聞いてみたいところですね。
もちろん、今こうして、このような話をしている僕にとっても、こういう経験から得た知見や知識を、次にあなたのためにどう活かせるのか。そうしたことを考えていかなくてはいけないので、自分の個人的な経験をどう活かしていくのか。そうしたことも考えながら、今の自分の経験をどのように活かしていきたいのか。そういったことをもし、どこかで意識してやっていくことができればと思いますね。
経営の力を身につけるには、経営者としての経験が不可欠
今日は、経営者としての経験をどのように積むのかということをお話ししてきました。今回のコラムでは、経営者としての経験をどのように積むのか。そして、経営者としての経験はどのようにして身につけていくのかということをより詳しく、詳細にお話ししてきましたので、これでお分かりいただけたのではないかと思います。
今日の話をどのようにして経営者としての経験を積むのか。そして、その中で、経営者としての経験をどのように身につけていくのか。このことを意識して、経営者としての経験を積んでいって欲しいと思います。
それでは、また次回お会いしましょう。

4.感想

最近話題のジェネレーティブAIについて、チャレンジしてみました。
ジェネレーティブAI自体の実装は、まだまだ勉強が必要なのですが、APIを使えば、その機能を使ったアプリケーションの実装はできることが分かりました。
まだ、どのような活用ができるかまでは思いついてないですが、いろいろと活用を考えていきたいと思います。
また、ジェネレーティブAI自体の実装もできるよう引き続き精進していきます。

2022年下半期の振り返り(積み上げの実践、その先を目指して)

2022年下半期は、実業務も充実してきたこともあり、業務に即した活動や実社会でのネットワークを広げる取り組みを実施してきました。

この半期は、上半期に引き続き、いろいろな記事を書かせていただいたり、各種研究会に参加させていただいたりと、実社会でも少しずつ貢献する活動ができてきたように思います。とはいえ、まだまだ修行は足りませんので、引き続き資格取得やコンペへの参加で、継続的なスキルアップも実施した半期でした。

引き続き、「ゆっくりでも止まらなければけっこう進む」の精神で頑張って行きたいと思います。

【目次】

【記事/論文関連】

 1.宇宙が分かる情報サイト「宙畑」に記事の寄稿

これまでも、何度か寄稿させていただいていました宙畑さんに、Solafuneさんで実施された「マルチ解像度画像の車両検出コンペ」について、以下の記事を寄稿させていただきました。

sorabatake.jp

自身が取り組んだ内容や、調べた論文などの内容を、読者の皆さんにお伝えする活動は、単にコンペに取り組むだけに比べると、理解の深まり方が格段に違います。

今後も、インプットした情報を皆さんにお伝えできるように、理解を深めながら取り組んでいきたいと思います。

 

また、2022年の宙畑年間読者数ランキングの「機械学習部門」で、6位と8位にランクインすることができました。Top10に2記事もランクインできてとてもうれしいです。

読んで下さった皆様、ありがとうございました。

6位「「市街地衛星画像の超解像化」コンペにチャレンジ! その結果と衛星データの可能性

8位「超解像の精度アップに寄与した4つのこと、衛星データ解析コンペ5位入賞者にインタビュー!

 2.JDLA合格者の会2022でLTに登壇

8月に開催された日本ディープラーニング協会(JDLA)の合格者の会2022にて、データ分析コンペに関するLTに登壇させていただきました。オフラインでの人前での発表はかなり久々だったので、緊張しましたが、やはりオフラインは現場の臨場感があってとても良い経験になりました。

聴講してくださった皆さんありがとうございました。

なお、日本ディープラーニング協会の公式YouTubeにも合格者の会の様子が公開されていますので、ご興味のある方はご視聴ください。

www.youtube.com


【コンペ関連】

1.ProbSpace で総合ランキング1位をキープ

昨年に引き続き、データ分析好きが集まる交流プラットフォーム「ProbSpace」で開催されたコンペに参加し、総合ランキング1位を継続しています。

2022年下期は、「コンビニ商品の売上予測で18位(銀)、「花粉飛散量予測で14位(銀)でした。

なかなか金圏には入れませんが、なんとか銀圏には入って総合ランキング1位をキープすることができました。

そろそろ、金圏にランクイン(あわよくば賞金ゲット)できるよう、更に精進していきたいと思います。

2.Kaggle、Nishikaなどのコンペに参戦

ProbSpace以外にも、散発的にデータ分析コンペティションサイトNishika」や「Kaggle」、「Solafune」にも参戦いたしました。

結果としては以下の通り。

Nishika

Kaggle

Solafune

以前に比べてなかなかメダル圏に入ることが難しくなってきているように感じました。

全体のレベルも上がってきているのか、どんどん進歩が速くなってきているのか、いずれにしても置いていかれないように頑張りたいと思います。

 【積み上げ関連】

1.マナビDXクエスト2022受講(2022年9月〜2023年2月)

毎年参加していた経済産業省実施のAI Questが、今年度は、マナビDXクエストと名前もあらたに、より実践的なビジネス課題の解決を目指した講座となって開始されました。現時点で、無事、第1タームが終了し、第2タームを受講中です。

内容は守秘義務があり、詳細を記載できませんが、AIQuestと同様、要件定義あり、コンペ形式でのAI開発あり、経営層向けのプレゼンありで、実業務に即した、かなり濃厚な講座となっています。

manabi-dx.ipa.go.jp

2.日本ディープラーニング協会「AIガバナンスとその評価」研究会に参加

日本ディープラーニング協会の「AIガバナンスとその評価」研究会に参加させていただけることになりました。

この研究会では、AIで構築されるシステムを開発者から利用者まで様々なステークホルダーを交えて管理・評価などの在り方を「ガバナンス」として定義して、信頼に足るAIの社会実装を目指した研究を行っています。

具体的には、AIに潜む様々なリスクについて、評価して管理していく社会全体の仕組みとして「AIガバナンスエコシステムの構築」を提言しています。

私も、経済産業省が出している「AI原則実践のためのガバナンス・ガイドライン」などを参照して、日々、勉強・研究中です。

少しでもAIの社会実装が適切に行われ、よりよい社会づくりに貢献できればと考えています。

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

 【資格関連】

1.AWSの3つの資格を取得

クラウドが当たり前のように普及する中、オンプレの知識だけでは立ち行かなくなってきたため、AWSの資格取得を通して基本的な知識を身に着けました。

今回取得したのは、基礎として「AWS Certified Cloud Practitioner (CLF-C01)」、ドメイン知識としてセキュリティの「AWS Certified Security - Specialty(SCS-C01)」、機械学習の「AWS Certified Machine Learning - Specialty (MLS-C01)」の3つを取得しました。

これらの資格は、無料の公式教材が充実していて、資格取得を通して、基本的な知識をスムーズに理解・習得することができました。

あとは、実践で覚えていきたいと思います。

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

おわりに

2022年下期は、記事の執筆やLTに登壇、研究会に参加させていただくなど、実社会に向けた、具体的な貢献の糸口を少しずつ作り始められた期間でした。

一方で、コンペなど実装面では、なかなか思うように精度や順位を上げることができず、昔とった杵柄だけでは太刀打ちできず、常に最新の動向をキャッチアップするなど、日々の鍛錬を怠らないことが非常に重要だと改めて感じさせられました。

引き続き、技術面でのスキルを磨くとともに、実社会で貢献できるよう取り組んでまいりたいと思います。

2022年も1年間、本当にありがとうございました。お世話になった皆様に改めて御礼申し上げます。

2023年もよろしくお願いします!

 

【これまでの道のり】

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com