393 Views
November 12, 24
スライド概要
(超初心者向け) Orange Data Miningによるマテリアルズ・インフォマティクス連続ハンズオン第三回目「大規模言語モデルを用いた学習」
マテリアルズインフォマティクスチュートリアル
大規模言語モデルを 用いた学習 木野日織 木野日織 大規模言語モデルを用いた学習 1
背景と目的 目的 背景 Orange Data Miningで説明していない 機能がある。 大規模言語モデルを利用してそれらを学習で きるようように学習例を示す。 以下、大規模言語モデルをLLMと呼ぶことにします。 木野日織 大規模言語モデルを用いた学習 2
マニュアルの問題点 目的: Orange Data Mining の機能 を理解する。 エキスパートに聞くと 手段:マニュアルを読む。 マニュアル(オリジナルの説明)は • 理解している人が短く書いている。 そのため、初心者には意味が分からないことが多い。 理解した後に読むと確かに必要なことが書いてある。 • • ユーザーの理解が正しいのか質問できない。 短く書いていても情報量が膨大で、初心者はどこを見れ ば良いのか分からない。 マニュアルで分かれば世の中に解説本は存在しない。 教科書もまた解説本。 ではどうする? →大規模言語モデル(LLM)が使える。 木野日織 大規模言語モデルを用いた学習 3
大規模言語モデルを利用した学習 古典的な教育・学習 LLMを併用した教育・学習 情報 情報 書籍・ 講義 読者・生徒 限られた 質問 書籍・ 講義 読者・生徒 質問 追加情報、 例示 LLM 現状は、LLMは • 先生にはならない。 • 助手・アシスタントになる。 木野日織 大規模言語モデルを用いた学習 4
大規模言語モデルの利用 手段 注意 LLMとしてGPT4oを使う。 ただし、回答を鵜呑みにしてはいけいない。 例えば、 • 回答が文字数制限されることで誤解が起き ることがある。 • ハルシネーションが起きる。 GPT4oは 1. Orange Data Miningが使っているscipy, scikit-learnのことをよく知っている。 2. Orange Data Miningをある程度知っている。 Orange Data Miningで分からないことは GPT4oに質問しある程度正確な回答を得ること が可能。 木野日織 回答の正確性は自分で検証すること。 その意味で、LLMは(正しいことを教える)先生 にはならない。 大規模言語モデルを用いた学習 5
LLMの正答率 GPT4oの正答率が高い内容 GPT4oの正答率が低い内容 ✓ 世の中に例が多い。 ✓ 世の中に例が多い。 有名なアルゴリズム あまり有名でないアルゴリズム 手法の比較(長所・短所) データ例作成 Widgetオプションの説明 オプション名を列挙した方が良い。 Widgetポート ワークフロー作成 (再度強調)ハルシネーションなどの理由から各自正確性を検証する必要あり。 最近のGPT4oは情報源も出力されます。更に、回答の正誤ならば正確性は調べやすいと思います。 木野日織 大規模言語モデルを用いた学習 6
例示内容 1. Test and Score widget 2. DBSCAN widget 3. Neural Network widget 木野日織 大規模言語モデルを用いた学習 Widgetを用いて ワークフローを作成し、 実行する。 7
例示内容 1. Test and Score widget 2. DBSCAN widget 3. Neural Network widget 木野日織 大規模言語モデルを用いた学習 Widgetを用いて ワークフローを作成し、 実行する。 8
Test and Score widget 問題 Stratifiedとは何? マニュアル(Orange Data Miningドキュメント)に記載 がない。 木野日織 大規模言語モデルを用いた学習 9
Stratifiedの機能 プロンプト GPT4o回答まとめ 回答そのものでなく、かなり簡単な要約を表示します。 背景が藍色の四隅が丸い枠 私は機械学習手法の初心者です。 # 共有知識 Orange Data Miningを使います。 # 質問 ’Test and Score‘ widgetを使います。 Stratifiedオプションを説明してください。 背景が白い四角い枠 関連事項としてStratified Cross-Validation を挙げる。 Stratified Cross-Validation(層化交差検 証):データの分布を保ったままデータをトレーニン グセットとテストセットに分割する方法。 どういう意味だろうか?→更に質問する。 木野日織 大規模言語モデルを用いた学習 10
Stratifiedを使うための要件 Stratified Cross Validationはデータをどの ように分割しますか? Stratifield cross validationを用いるには データがどうなっている必要がありますか? 木野日織 K分割にデータを配置: データをK分割する場合、各クラスのサンプルをK等分し、 各分割に同じ割合で配置していきます。 1.ラベル付きデータ • データにラベル(クラスまたはターゲット変数)がつ いていること。 2. クラス数が複数 • 有意義に層化するためには、データセットに複数の クラスがあること。 大規模言語モデルを用いた学習 11
Stratified Cross Validation 図示 Class 三回交差検定の場合 A #1 A,Bの2クラスとする。 A #2 1. A,Bクラス内でデータインスタンスを3分割、 (#1, #2, #3)します。 2. 各検定ごとに各クラスで一つテストセット(テ ストデータ)、残りを訓練セット(訓練データ) とする。 #3 A B #1 B #2 #3 B B (右のようなデータ例が欲しければ「例を用いて説明」 などと質問するとよい。) 木野日織 大規模言語モデルを用いた学習 12
データ例の生成 説明変数 目的変数 生成されたデータ Stratified cross validationを回帰モデルで使うた めのデータ例をCSVフォーマットで示してください。目的 変数、説明変数、クラスを書いてください。クラス(Low, Medium, High)の例を5つづつ作成してください。 ID,Feature1,Feature2,Target,Class 1,5.1,3.5,18.5,Low 2,4.9,3.0,19.2,Low 3,5.0,3.4,20.1,Low 4,5.2,3.5,19.8,Low 5,5.4,3.9,18.9,Low 6,6.3,3.3,28.5,Medium 7,5.8,2.7,28.9,Medium 8,6.0,3.0,27.3,Medium 9,5.9,3.4,29.1,Medium 10,6.1,3.0,28.0,Medium 11,6.7,3.1,38.2,High 12,7.0,3.2,39.7,High 13,6.8,3.0,40.5,High 14,6.9,3.1,39.2,High 15,7.1,3.3,41.0,High Low 5つ Medium 5つ High 5つ ファイル(data/stratified15data.csv)に保存。 木野日織 大規模言語モデルを用いた学習 13
‘Test and Score’を用いるワークフロー例 人が作成 data/stratified1 5data.csvを読み 込む。 ? 線形回帰モデル データ規格化は 省略した。 workflow/9.01. stratified.owsと して保存。 木野日織 回帰問題で’Class’をどう設定するのか分 からない。 大規模言語モデルを用いた学習 14
‘Test and Score’を用いるワークフロー例 木野日織 大規模言語モデルを用いた学習 15
‘Test and Score’を用いるワークフロー例 LLMとの共通認識が必要なので何を行うのかを詳細を 説明して、質問する。 Orange Data miningを用います。 stratified cross validationを用います。 ? 回帰問題で’Class’をどう設定するのか分 からない。 木野日織 回帰モデルを作成します。 1. 説明変数はfeature1, feature2カラムです。File widgetでType=numeric, Role=featureとし て読み込みます。 2. 目的変数はtargetカラムです。File widgetで Type=numeric, Role=targetとして読み込みま す。 3. stratified cross validationで使用するために classカラムがあります。File widgetで Type=categoricalです。tratified cross validationで使うにはRoleはどう読み込めばいい ですか? 大規模言語モデルを用いた学習 16
GPT4oの推測 Orange Data miningを用います。 stratified cross validationを用います。 回帰モデルを作成します。 1. 説明変数はfeature1, feature2カラムです。File widgetでType=numeric, Role=featureとし て読み込みます。 2. 目的変数はtargetカラムです。File widgetで Type=numeric, Role=targetとして読み込みま す。 3. stratified cross validationで使用するために classカラムがあります。File widgetで Type=categoricalです。tratified cross validationで使うにはRoleはどう読み込めばいい ですか? 木野日織 回帰分析においてはClassカラムを直接層化用と して指定するオプションがOrangeのGUIの中には 存在しないため、通常の層化は行われない。 という推測をGPT4oがする。 では、分類モデルならばstratified cross validationを使えるのか? 大規模言語モデルを用いた学習 17
‘Test and Score’を用いる分類モデル例 同じファイル 回帰モデルから 分類モデルへ変更 木野日織 Targetカラムを’skip’ role, Classカラムを’target’ roleとする。 大規模言語モデルを用いた学習 → 説明変数: Feature1, Feature2。 目的変数: Class 18
‘Test and Score’を用いる分類モデル例 次のページは右の2つの widgetを並べて表示する。 木野日織 大規模言語モデルを用いた学習 19
‘Test and Score’を用いる分類モデル例 ① ② ✓ 交差検定 ✓ Stratified • 四角い枠で交差検定の各回で使われたTest setを表示している。 • ①Classが元データのクラス。 ②Foldカラムが交差検定の回数。 • ②Foldカラムごとに①ClassカラムがLow, Medium, Highクラス を一行づつ出力する。 木野日織 大規模言語モデルを用いた学習 20
‘Test and Score’を用いる分類モデル例 ① ② ✓ 交差検定 StratifiedをOFF • ②Foldカラムごとに①ClassカラムでLow, Medium, Highの3つの クラスの数がばらばら。(全体に対してshuffleしている。) 木野日織 大規模言語モデルを用いた学習 21
内部で用いる関数 ソースを読むことによる検証 ソースコードを読むとStratifiedの場合は • sklearn.model_selection.StratifiedKFold • sklearn.model_selection.StratifiedShuffleSplit を用いている。 Pythonでこの関数を使用する場合はClassカラムを用 いて分割してよい。→回帰でも層化交差検定や層化分割 を利用できる。 一方、Orange Data Miningでは必ずTargetカラム を引数にするコード。→回帰では層化交差検定や層化分 割を利用できない。 木野日織 回帰分析においてはClassカラムを直接層化用と して指定するオプションがOrangeのGUIの中には 存在しないため、通常の層化は行われない。 というGPT4oの回答があった。 回帰分析においてはClassカラムを直接層化用と して指定するオプションがOrangeのGUIの中には 存在しないため、 層化分割する関数を呼ぶ際に、 目的変数と別に Classカラムを引数に指定することができない。そ のため 通常の層化は行われない。 はず、という推論。 大規模言語モデルを用いた学習 22
GPT4oの回答の評価 ‘test and score’ widgetで 手法、widget parameterは正確に出力した。 有名な手法なので例が多いから。 正しい推論もできた。 →GPT4oは有用でした。 木野日織 大規模言語モデルを用いた学習 23
例示内容 1. Test and Score widget 2. DBSCAN widget 3. Neural Network widget 木野日織 大規模言語モデルを用いた学習 Widgetを用いて ワークフローを作成し、 実行する。 24
DBSCAN widget クラスタリング手法として有名 もっとも引用回数が多い手法の一つ 木野日織 大規模言語モデルを用いた学習 25
DBSCAN widget 使い方が分からない。 木野日織 大規模言語モデルを用いた学習 26
DBSCANのパラメタ DBSCAN (Density-Based Spatial Clustering of Applications with Noise) は、密度に基づいたク ラスタリング手法 新たなチャットで質問することを想定する。 私は機械学習手法の初心者です。 Orange Data Miningを用います。 Orange Data MiningのUnsupervisedカテゴリに DBSCAN widgetがあります。 # 依頼 DBSCAN widetにParameterとしてCore point neightbors、Neighborhood distance、Distance Metricがあります。これらを説明してください。 Core Point Neighbors (コアポイントの近隣数):ある 点を「コアポイント」として識別するために必要な最小近 隣点の数。コアポイントはクラスタの中心となるポイント。 この値を大きくするほど、より密なクラスタを探す。 Neighborhood Distance (近傍距離):エプシロン (ε)とも呼ばれる。この距離内にある点は、コアポイント の近傍として考慮される。この値が小さいと、より狭い範 囲で密度を計算する。 Distance Metric (距離測度):データポイント間の距離 を測定するための方法。 近隣数と距離で(数)密度を定義するらしい。 木野日織 大規模言語モデルを用いた学習 27
DBSCANの理論を詳しく DBSCAN について数式で教えて下さい。密度 に基づいた手法というのはどういう意味です か?K-Means法やPCA法との違いを教えて下 さい。 木野日織 大規模言語モデルを用いた学習 28
DBSCANの理論を詳しく DBSCAN について数式で教えて下さい。密度 に基づいた手法というのはどういう意味です か?K-Means法やPCA法との違いを教えて下 さい。 木野日織 密度に基づいたクラスタリングとは、 データセット中の「高密度」領域をクラスタとして認識し、「低密 度」領域を境界として扱う。 大規模言語モデルを用いた学習 29
DBSCANの理論を詳しく(続き) DBSCAN について数式で教えて下さい。密度 に基づいた手法というのはどういう意味です か?K-Means法やPCA法との違いを教えて下 さい。 1. エプシロン近傍 (ε-neighborhood): ある点pに対して、与えられた距離ε内に位置するすべての点の集 合をエプシロン近傍という。 N𝜖 𝑝 = {𝑞 ∈ 𝐷 | distance 𝑝, 𝑞 ≤ 𝜀} 2. コアポイント (Core Point): 点pがコアポイントであるためには、そのε近傍に少なくとも MinPts個の点が存在しなければいけない。 条件:𝑁𝜀 𝑝 ≥ 𝑀𝑖𝑛𝑃𝑡𝑠 3. 密度到達 (Density-Reachable): ある点qが点pから密度到達可能であるとは、一連の中間点を介し てpから qまで移動可能で、すべての中間点がコアポイントである場 合を指す。 論文(DOI:10.1023/A:1009745219419)では、Definition 9に DBSCANの定義がある。本文ではcore objectで、本文中のソース ではcore pointを使っている。 木野日織 大規模言語モデルを用いた学習 30
DBSCANの理論を詳しく(続き) DBSCAN について数式で教えて下さい。密度 に基づいた手法というのはどういう意味です か?K-Means法やPCA法との違いを教えて下 さい。 K-Means法: 1. クラスタの数 :事前に指定する。 2. ユークリッド距離を基に、点を近くのクラスタ中心(重心)に割 り当ててクラスタを見つける。 3. データポイント間の距離を使用するため、球状のクラスタを見 つける。 DBSCAN: 1. クラスタの数を事前に指定する必要がない。 2. データの密度を基にクラスタを形成し、異なる形状のクラスタ を見つけらる。 3. ノイズを効果的に検出できる。 PCA: 1. クラスタリング手法ではない。 木野日織 大規模言語モデルを用いた学習 31
DBSCANのノイズとは? DBSCANのノイズとは何ですか? ノイズは最後はどこかのクラスターに割り振ると思い ます。ノイズはどうクラスターに割り振りますか? 木野日織 DBSCANにおける「ノイズ」とは、どのクラスタにも属さな いデータポイントのこと DBSCANでは、ノイズポイントはクラスタには割り振られ ない。 ノイズをクラスタに割り当てる方法として、例えば、最も近 いクラスタへの割り当てがある。 大規模言語モデルを用いた学習 32
DBSCAN(図示) 各 クラスター の範囲 点がεの距離範囲○を持つ。 MinPts=3とすると、距離範囲○に3点以上ある 点がコアポイント。 ε 距離範囲○に1点しかない はない。 点はコアポイントで あるクラスタに含まれるのは 点の距離範囲○に 含まれる複合範囲□内の点なので 点だけでなく 点も含まれる。 ε 木野日織 ノイズ 点はクラスタに含まれないのでノイズ(という 定義)。 大規模言語モデルを用いた学習 33
DBSCANを用いたwidget例 Standardization data/carbon8_descriptor_all_Oran ge.csvを読み込む。 炭素構造の各原子の近傍環境のデータ。 大まかに、spの欠陥、sp, sp2, sp3構造 で場合分けされる。 PCA=2 計算上の距離を図上の 距離と一致させるため。 workflow/5.01.dbscan_carbon8.owsとして保存。 木野日織 大規模言語モデルを用いた学習 34
DBSCANを用いたwidget例 この図はどう見たら良いのか? 木野日織 大規模言語モデルを用いた学習 35
Distance to the k-th nearest neighbour? 私は機械学習手法の初心者です。 Orange Data Miningを用います。 Orange Data MiningのUnsupervisedカ テゴリにDBSCAN widgetがあります。 DBSCAN widetにParameterとしてCore point neightbors、Neighborhood distance、Distance Metricがあります。 # 依頼 DBSCAN widetにData items sorted by score vs Distance to the k-th nearest neighbour の図が表示されました。この図の 見方を説明してください。 木野日織 縦軸:Core point neightborsで指定した各データポイントからk 番目に近い隣接点までの距離。 横軸:データ項目をスコア順に並べたもの。 グラフの見方:横から見るとdistanceのDOSになる。 平坦な領域:高密度のクラスタの存在。 この領域にあるデータポイントは、近くに多くの他のポイントが ある。 急激な上昇:密度が急激に減少 縦軸の距離が急上昇している部分は、クラスタの境界付近に あるデータポイントやノイズポイントを示している可能性がある。 目的: このグラフはεとMinPtsを調整する際に利用。 例)急激な上昇を示すポイントを特定し、その手前で急上昇が始まる 地点を基にして、エプシロン (ε)の適切な値を設定する。 大規模言語モデルを用いた学習 36
Neighborhood distanceの設定 Neighborhood distance の推奨値は傾きが変わる値。 論文にもそう書いてあります。 右図はその点を選択した場合です。 多くが ノイズ 木野日織 大規模言語モデルを用いた学習 Core pointの数 37
DBSCANクラスタリングのデータ条件 DBSCANがうまく機能するための条件 を教えて下さい。 1. 2. 3. 4. クラスタの密度が明確に分かれていること ノイズが少ないこと データのスケールが適切であること データが連続的であること 点を密度として解析する。 同じクラスター内では“連続的に密度”を定義できないといけない。 残念ながら例で用いるデータはこれらを満たさない。 • 同じクラスターだと思っている領域内に濃淡の大きな変化 ある。 • 点の数が少ないクラスターがある。 木野日織 大規模言語モデルを用いた学習 38
DBSCANを用いたwidget例 sp3 • • 木野日織 sp2 spで片方原子 sp 欠陥 調整するとC1,C2,C3の3クラスターに割り振ることが 可能。sp片方欠陥のクラスターは数が足りない。 割り振られていない点(灰色)が多く存在する。 大規模言語モデルを用いた学習 39
GPT4o回答の評価 DBSCAN: 手法、widget parameterは正確に説明した。 有名な手法なので例が多いから。 更に、K-Means法との比較を行うことができた。 任意の手法間での比較は書いていないことが多いので有用。 木野日織 大規模言語モデルを用いた学習 40
例示内容 1. Test and Score widget 2. DBSCAN widget 3. Neural Network widget 木野日織 大規模言語モデルを用いた学習 Widgetを用いて ワークフローを作成し、 実行する。 41
Neural Network widgetとは? 木野日織 Orange Data MiningのNeural Network widgetについて説明してく ださい。 多層パーセプトロン(MLP)アルゴリズムを用い たニューラルネットワークモデルを構築するため のツールです。 それは 全結合ニューラルネットワークモ デルですか? はい。 大規模言語モデルを用いた学習 42
Neural Networkのパラメタ パラメタを列挙して質問する。 私は機械学習手法の初心者です。 Orange Data Miningを用います。 Orange Data MiningのSupervisedカテゴリにNeural Network widgetがあります。 # 依頼 Neural Network widgetにParameterとして 1. Neurons in hidden layers, 2. ActivationとしてIdendity,Logistic, tanh, ReLuがありま す。 3. SolverとしてL-BFGS-B, SGD, Adamがあります。 3. Regularizaiton α=として数値を入力します。 4. Maximal number of iterationsとして数値を入力します。 5. Replicable trainingチェックボックス があります。これらを説明してください。 木野日織 大規模言語モデルを用いた学習 43
Neural Networkのパラメタ(続き) 私は機械学習手法の初心者です。 Orange Data Miningを用います。 Orange Data MiningのSupervisedカテゴリにNeural Network widgetがあります。 # 依頼 Neural Network widgetにParameterとして 1. Neurons in hidden layers, 2. ActivationとしてIdendity,Logistic, tanh, ReLuがありま す。 3. SolverとしてL-BFGS-B, SGD, Adamがあります。 3. Regularizaiton α=として数値を入力します。 4. Maximal number of iterationsとして数値を入力します。 5. Replicable trainingチェックボックス があります。これらを説明してください。 Neurons in hidden layers (隠れ層のニューロン数) “10, 5” と指定すれば、最初の隠れ層に10個、次の 層に5個のニューロンを持つ2層のモデル。 Activation (活性化関数): Identity: 入力をそのまま出力。 Logistic (Sigmoid): 出力を0から1の間に。 Tanh: 出力を-1から1の範囲に。 ReLU (Rectified Linear Unit): 非線形性があ り、現在最もよく使われる活性化関数。 更に詳細を知りたい場合はLLMへ質問。 例)ReLU関数を数式で教えて下さい。 木野日織 大規模言語モデルを用いた学習 44
Neural Networkのパラメタ(続き) 私は機械学習手法の初心者です。 Orange Data Miningを用います。 Orange Data MiningのSupervisedカテゴリにNeural Network widgetがあります。 # 依頼 Neural Network widgetにParameterとして 1. Neurons in hidden layers, 2. ActivationとしてIdendity,Logistic, tanh, ReLuがありま す。 3. SolverとしてL-BFGS-B, SGD, Adamがあります。 3. Regularizaiton α=として数値を入力します。 4. Maximal number of iterationsとして数値を入力します。 5. Replicable trainingチェックボックス があります。これらを説明してください。 木野日織 Solver (最適化手法): • L-BFGS-B: 小さなデータセットに対して有効な準 ニュートン法 • SGD (Stochastic Gradient Descent): 大規模 データセットに有用な手法 • Adam: 適応的に学習率を調整する手法。安定性と効 率性に優れる。 Regularization α= (正則化パラメータ α): 過学習を防ぐためのパラメータ。αの値が高いほど、正則 化の度合いが増す。 Maximal number of iterations (最大反復回数): 重みを更新する試行回数。全データを用いるSolverでは エポック(訓練データ全体を一度処理するサイクル)数。 Replicable training (再現性のあるトレーニング): 再度トレーニングを行った場合にも同じ結果が得られる。 (内部で用いる関数はsklearn.neural_network.MLPRegressor) 大規模言語モデルを用いた学習 45
Neural Networkの正則化パラメタ ニューラルネットワークについて数式で説明し てください。 正則化パラメタはどこに適用さ れますか? ニューラルネットワークの数式 1. 入力層と出力層: 入力データベクトルを 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 とし、出力を 𝑦 とす る。 2. 重みとバイアス: 各リンクには重み 𝑤𝑖𝑗 があり、各ニューロンにはバイアス 𝑏𝑖 とする。 3. 活性化関数: 各隠れ層や出力層で非線形性を導入するために、活性化関数𝜎を使 用する。 𝑙−1 4. ニューロンの出力: 各層 lのニューロン jの出力zを𝑧𝑗𝑙 = σ𝑖 𝑤𝑖𝑗 𝜎(𝑧𝑗𝑙−1 ) + 𝑏𝑗𝑙 と する。 5. 損失関数: ŷはニューラルネットワークの予測値として、出力層の誤差を測定するた 1 めに損失関数 𝐿 𝑦, ŷ = 𝑦 − ŷ 2 + 𝐿reg とする。 2 1 𝑤𝑖𝑗 2 𝑤𝑖𝑗 3 𝑤𝑖𝑗 正則化の数式 モデルの重みが不必要に大きくなるのを防ぐため用いる。 2 L2正則化(リッジ正則化): 𝐿reg = 𝐿(𝑦, ŷ) + 𝛼 σ𝑖𝑗 𝑤𝑖𝑗 正則化パラメータ αは正則化項の影響を調整する。 αが大きいほど、大きな重みが 抑制されモデルのか学習が防がれる。 木野日織 大規模言語モデルを用いた学習 46
ワークフロー作成 Orange Data Miningでニューラルネットワー クモデル回帰を学習するワークフローを作っ てください。 widgetとwidgetの間はどのポートを繋ぐかも 説明してください。 大規模データに使えるように観測データを一 組の訓練データ・テストデータに分割してく ださい。 テストデータを用いて回帰性能を評価してく ださい。 木野日織 File Widget(データ読み込み):Dataポートを「Select Columns」ウィジェットに接続します。 Select Columns Widget(特徴選択):Dataポートを 「Data Sampler」ウィジェットに接続します。 … どう繋ぐかの説明はある。しかし、 大規模言語モデルを用いた学習 47
ワークフロー作成 動作しない原因 生成例 1. 回答のポート名が間違っている。 2. 動作に必要なポート接続がない。 プロンプトを工夫してもzero shotでは動作さ せられなかった。(zero shotプロンプトについ てはLLMへ質問してください。) ワークフローを作成できない原因 動作しない 木野日織 GPT4oは多くのwidgetのポートを正確に知ら ない。従って、ワークフローも書けない。 大規模言語モデルを用いた学習 48
テキストでのワークフロー 過程 1. ファイルからデータを読み込む。 説明変数、目的変数の設定 を行う。 2. データの規格化を行う。 3. 一組の訓練データ・テストデータに分ける。 4. 訓練データでニューラルネットワークモデルを学習する。 5. テストデータの予測値を出力する。 6. テストデータの予測性能評価値を出力する。 この指示ではOrange Data Miningで動 作するワークフローを出力できない。 Pythonではこの指示で動作させられる。 GPT4oを用いると自然言語でプログラミング可能 なので興味がある方はPythonの利用を検討 ワークフローは人が作成せざるを得ない。 (こちらで続ける) 木野日織 大規模言語モデルを用いた学習 49
一組のデータとテストデータに分割 ニューラルネットワークを用いる場合は 大規模データであることが多い。一組のデータ とテストデータで回帰モデルの十分妥当な評価 ができることが多い。 該当widgetを知らないとして質問する。 私は機械学習手法の初心者です。 Orange Data Miningを用います。 # 依頼 一組の訓練データとテストデータに分割するのはどの widgetを用いればいいですか? 木野日織 “Data Sampler“ widgetを用いる。 使用方法: 1. Orangeキャンバスに「Data Sampler」ウィジェットを追加。 2. File widgetなどから読み込んだデータを、Data Samplerに接 続。 3. 「Proportion of data」や「Test data size」などのオプションで、 訓練データとテストデータの分割比率を設定。 4. Sampling Typeで無作為にサンプリングするか、あるいは他のサ ンプリングオプションを選択。 5. Data Samplerの出力から、訓練データとテストデータをそれぞれ 別のウィジェット(例えば、トレーニングにはモデルウィジェット、評価 にはTest & Scoreウィジェット)に接続。 取り消し線部分は間違いだが、それ以外は正確な説明。 大規模言語モデルを用いた学習 50
動作するワークフロー 70% Replicable sampling Test on test data data/hea4_phys.csv を読み込む。 7万件、4説明変数 Standization CPUでは数分かかる。 Data Samler widgetで減らせる。 データインスタンス数が大すぎる。数を 減らすwidgetは? 木野日織 言い回しも分かる。たとえば、「データセットからランダムに 一部のデータインスタンスを抽出する」「大規模なデータ セットをランダムに縮小する」 大規模言語モデルを用いた学習 51
動作するワークフロー 人が作成 大規模なデータセットをランダムに縮小する過程を追加 挿入 5% Replicable sampling 木野日織 workflow/5.01.NNregression.owsとして保存。 大規模言語モデルを用いた学習 52
Neural Network widgetのパラメタ調整 パラメタ例 Nuerons in hidden layers: 100 Activation: ReLu Regularization , alpha=0.0001 Maxial number of iterations: 200 ✓ Replicable training RMSE: 670 MAE: 543 R2: -1.84 →パラメタ調整が必要。 木野日織 大規模言語モデルを用いた学習 53
パラメタ調整 # 共有知識 Orange Data MiningでNeural Networkモ デルを学習しました テストデータに対してR2=1.84でした。 # 依頼 どうモデルパラメタを修正すると回帰性能が改善し ますか? パラメタは{# 現在のパラメタ}に記します。 # 現在のパラメタ Nuerons in hidden layers: 100 Activation: ReLu Regularization , alpha=0.0001 Maxial number of iterations: 200 Replicable training 現状の評価: R²スコアが負であることから十分な性能を発揮できていな い。 改善案: 1. 隠れ層のニューロン数が多すぎて過学習している場合 は減らす。ニューロン数が少なすぎて表現力が足りない 場合はニューロン数を増やす。 2. 隠れ層を追加する 3. 正則化パラメータ α が小さいと過学習するので大きく する。 影響が少なかった。 次に 1. 反復回数の増加 2. 異なる活性化関数の使用 同時に示された原因と結果例は指針を立るために とても有用。 木野日織 大規模言語モデルを用いた学習 54
Hidden layerのニューロン数 説明変数数は4 Hidden layerのニューロン数の例を教えてくだ さい。 1. 単層構成の場合 - 特徴量が少ない小規模データ:10~50ニューロン - 特徴量が10~100程度:50~100ニューロン - 特徴量が100以上:100~200ニューロン 2. 多層構成の場合 隠れ層を2層以上にすると、各層のニューロン数は徐々に減ら すと学習が安定しやすくなります。 - 2層構成: - 第1層:100~200ニューロン - 第2層:50~100ニューロン - 3層構成: - 第1層:150~200ニューロン - 第2層:75~150ニューロン - 第3層:25~75ニューロン 木野日織 大規模言語モデルを用いた学習 55
R2(test)結果 このあたり で十分 木野日織 Nuerons in hidden layers R2(test) 16 0.004 32 0.266 16,8 0.638 32,16 0.744 48,32 0.763 64,32 0.722 64,64 0.769 8,8,8 0.678 8,4,2 0.661 16,8,4 0.751 24,16,12 0.763 32,24,16 0.769 32,16,8 0.755 予測値 観測値 大規模言語モデルを用いた学習 56
neural network widget再び Orange data miningのneural network widgetは回帰モデル用ですか?分類モデル 用ですか? 回帰モデルと分類モデルのどちらにも使用できる。 5.01.NNregression.owsの下半分に例を置く。 データはファイル data/mono_structure_descriptor_Orange.csvを読み込む。 ソースを読むと、sklean.neural_network .MPLRegressorとMPLCassifierを両方用いている。 木野日織 大規模言語モデルを用いた学習 57
GPT4o回答の評価 手法、widget parameter、調整方法は正確に説明した。 有名な手法なので例が多いから。 ワークフローは正確に出力できなかった。 木野日織 大規模言語モデルを用いた学習 58
正確性検証のための情報源 GPT4oは各自正確性を検証しながら使う必要がある。 1.GPT4oの出力の“情報源“ 2. 論文、解説書 Orange Data Miningは背後でどのような機 械学習手法パッケージを用いていますか? NumPy, SciPy, scikit-learn, … 3. 質問対象をOrange Data Miningでなく、上の パッケージのクラス・関数した方が理解しやすい、もし くは正答率が高いかもしれません。 木野日織 大規模言語モデルを用いた学習 59
最後に 今回の内容と将来への期待 データソース 各自LLMを用いて学習、検証できるようになるために、学 習例を紹介しました。 炭素構造:DOI:10.1103/PhysRevB.95.184110 HEA:10.1103/PhysRevMaterials.6.023802 LLMは正しいことを教えてくれる先生ではありません。 LLMの回答を各自検証しながら使うので、各自の学習も不 可欠です。 将来はLLMの進化で更に正確な回答が期待できます。 木野日織 大規模言語モデルを用いた学習 60
以上です。 お疲れさまでした。 木野日織 大規模言語モデルを用いた学習 61