データ化学工学研究室物語 第Ⅱ部 第6章 同じ色の近傍

データ化学工学研究室物語

第Ⅱ部 高精度モデルの落とし穴

学部四年生から修士課程へ。実際の研究で調べ、試し、考え、自分の問いを育てていく。

第6章 同じ色の近傍

 

五月の半ば、遥は、前の週と同じ散布図に色を付けていた。

予測し直したわけではない。

44 個の報告結果も、20 個の構造グループも、点の位置も変えていない。変えたのは、その数字を最初に報告した原著論文ごとに、点を見分けられるようにしたことだった。

画面の横には、前の比較が残っている。

元の入力:MAE 0.29、RMSE 0.39。
工程別の入力:MAE 0.26、RMSE 0.38。

二酸化炭素透過係数を常用対数に変換した尺度で、同じ 44 行を比べた結果だった。

少し小さくなった誤差を、もう少し安心して説明したい。

けれど、先生から聞かれたことには、まだ答えていなかった。

同じような工程を使った記録は、いくつの原著論文にあるのか。

遥は、数字を集めた先の source_id を、そのまま色の指定には使わなかった。第2章で作った照合表から、各 reported_result_id が、どの原著論文の報告結果に対応するかをたどった。

比較表へ載せ直された同じ値は、すでに一つにまとめている。その値を引用した文献が何報あっても、色を増やす理由にはしない。

今回の 44 行がたどり着いた原著論文は、9 報だった。

遥は、それぞれに P01 から P09 までの番号を付け、original_paper_id という列へ保存した。番号から文献名と該当する表へ戻れるようにする。

この番号は、出典をまとめて確認するためのものだった。新しく予測する膜の性質を教えてくれる説明変数ではない。

九つの色だけでは見分けにくかったので、点の形も変えた。画面上の点を選ぶと、record_id と原著論文の番号が表示されるようにした。

同じ色が、まとまっている場所があった。

「論文で分けたの?」

隣の同期が、椅子を少し寄せた。

「うん。工程を詳しくしたら、どの記録が近くに選ばれるようになったかを見てる」

「色がまとまってるなら、論文の違いを覚えてるんじゃない?」

遥も、一瞬そう言いかけた。

でも、同じ論文が、似た高分子をまとめて調べていた可能性もある。同じ作り方を使っていた可能性もある。点の色だけでは、そのどれかを選べない。

「その可能性を調べたい。ただ、まだ色を変えただけだから」

遥は、散布図の隣に、新しい表を開いた。

行には原著論文。列には、乾燥とその後の処理について確認した雰囲気の組み合わせを置く。各欄に、報告結果の数を入れた。

数値の温度や時間は、色をきれいに分けるために区切り直さず、そのままの値の範囲も横に残した。

一つの組み合わせには、8 行があった。

8 個あれば、それなりに確かめられている気がする。

けれど、原著論文の番号を数えると、一つだった。その 8 行には四つの構造が含まれていたが、すべて P01 の中で報告されていた。

8 個の報告結果。
四つの構造。
一つの原著論文。

どれも、同じ欄を説明する数字だった。

遥は、8 の隣に、四つと一つを書き足した。

原著論文の数だけで研究の質が決まるわけではない。それでも、8 行あることを、八つの別の研究で確かめられたことのようには扱えなかった。

次に、原著論文と構造グループの対応を並べた。

一つの論文が複数の構造を調べている。
同じ構造が別の論文にも現れる。
論文と構造は、一対一には対応していない。

前の構造グループ分割で、何が分かれて、何が残ったのかが、ようやく表の形で見えた。

午後、遥は、工程別の入力で誤差が小さくなった一つの点を開いた。

その点を予測した外側の分割では、同じ構造の記録は、すべて学習から外されている。点検結果にも、重なりはない。

一方、近傍に選ばれた別の構造の膜には、同じ P01 の色がいくつもあった。

工程の温度、時間、雰囲気が近い。原著論文の工程説明にも、共通する部分がある。

モデルは、論文名を直接読んではいない。

ただ、工程を表す数値を通して、同じ論文の記録を選びやすくなっていた。

紺色のパーカーの先輩に見せると、先輩は近傍の一覧を指した。

「この近傍が選ばれたことは、間違いでしょうか」

「同じような工程の別の構造を参考にすること自体は、間違いではないと思います」

「では、何が気になりますか」

遥は、P01 の行へ戻った。

「工程が似ていることと、その論文に共通する別の条件が、重なっていることです。この工程を別の研究で使った膜にも、同じように予測できるかが気になります」

膜の作り方のうち、今の入力にない条件もある。試料の扱い方、測定前の保管、装置や測定手順についても、すべてそろえたわけではない。

同じ論文の中では共通していて、別の論文へ移ると変わる事情が、まだ残っているかもしれなかった。

「工程そのものが予測に役立った場合と、工程が別の共通点の目印になった場合を、今の表だけでは切り離せません」

遥が言うと、先輩はうなずいた。

「その区別を確かめたいんですね。ただし、原著論文を分ければ、全部の条件が独立になるわけでもありません。同じ研究グループの別の論文もありますから」

遥は、P01 と P02 を違う色にしたことを思い出した。

別の色を塗ったのは、自分だった。

その色が違えば、原料も装置も研究者も違うと確認したことにはならない。

「今回は、まず元の報告論文が重ならない場合を点検します。別の研究室でも使えると証明した、とは言いません」

先輩は、これまでの構造グループ分割の図を開いた。

「その場合、構造はどうしますか」

「同じ構造も、学習側へ残さないようにしたいです。もとの目的は、新しい構造と作製条件の候補を考えることなので」

二つの番号を使えばよい。

そう考え、遥は structure_group_checked と original_paper_id を、組にして一つの札へまとめかけた。

構造が S01、論文が P01 なら、S01_P01。

違う組には違う札が付く。これで、二つの条件を同時に分けられるだろうか。

プログラムを全データへ適用する前に、遥は三行だけの表を作った。

記録 a:構造 S01、原著論文 P01。
記録 b:構造 S01、原著論文 P02。
記録 c:構造 S02、原著論文 P01。

三つの組の札は、すべて違う。

しかし、記録 a を評価側へ置いたとき、b を学習側に残せば、同じ構造が残る。c を残せば、同じ原著論文が残る。

組が違うことと、構造も論文も重ならないことは違った。

遥は、小さな表に、赤い線を二本引いた。

同じ構造を結ぶ線。
同じ原著論文を結ぶ線。

「二列を一つにしただけでは、解決していませんでした」

先輩は、線のついた三行を見た。

「今の点検で、それが分かりましたね。何を評価側に残し、何を学習から外すのかを、そのまま手順にしてみましょう」

遥は、自分が知りたい場面を、もう一度書いた。

その原著論文の報告を使わず、同じ高分子構造の報告も使わずに、対象の値を予測する。

最初に、一つの原著論文の記録を、まとめて評価側に残す。

次に、残った学習用の候補から、評価側と同じ構造の記録を外す。

外した記録は、その回の学習には使わない。ただし、元のデータから削除したわけではない。自分の原著論文が評価側へ回るときには、評価の対象になる。

これなら、その回に予測する膜と、同じ論文、同じ構造のどちらも学習側へ残らない。

ただ、その分、モデルが参考にできる記録は減る。

遥は、評価側、学習側、同じ構造のため学習に使わない記録を、それぞれ別の欄へ書いた。

「学習側から外す記録を、評価側へ全部移すわけではないんですね」

先輩に確認され、遥はうなずいた。

「はい。評価側は、その回に選んだ原著論文の記録です。構造の重なりを避けるために外した別の論文の記録とは、役割を分けます」

一つの線で左右に分けるだけだと思っていたデータ分割に、もう一つ置き場所ができた。

遥は、三行の表で、その置き場所も確かめた。

記録 a の論文を残したとき、同じ論文の c も評価側へ行く。同じ構造をもつ b は、学習側から外れる。この三行だけなら、モデルを学習するための記録は残らない。

そのときは、計算できないと知らせて止まる。

小さな表だからこそ、何が起きるべきかを、自分で説明できた。

対話型 AI には、自分で決めた手順と、この点検用の表を示した。

構造と原著論文の重なりを避けるための分割です。処理が間違っているときに気づける点検例を、追加で挙げてください。研究データの値や、評価結果は推測しないでください。

回答には、行の順番を入れ替えた場合、同じ構造が三つの文献へまたがる場合、構造番号のない行が混ざった場合などが挙がった。

遥は、期待する結果を先に書き、小さな表で順に試した。

AIの説明が正しそうだからではなく、処理を間違えたら止まるかを、実際の出力で確かめる。

今度は、その作業を始める理由を、先輩に聞かれる前に持っていた。

翌日、遥は比較の計画をまとめた。

対象は、前の週と同じ 44 個の報告結果、20 個の構造グループ。
入力は、元の入力と工程別の入力の二通り。
外側では、9 報の原著論文を一つずつ評価側へ回す。
各回の学習側から、評価側と同じ構造をもつ記録も外す。

二つの入力方法で、その対応を共通にする。

近傍数を選ぶ内側でも、その時点の学習用データの中で、原著論文を一つずつ検証側へ回し、同じ構造をモデル構築側から外すことにした。

外側だけを厳しく分け、内側では別の問いで選ぶ、という形にはしない。

温度や時間の標準化、一定値となる列の扱いは、各回のモデル構築側だけで決める。雰囲気の区分は、前の章で決めた定義と変換を引き継ぐ。

近傍数の候補も、前と同じにした。

candidate_k = [1, 3, 5, 7, 10, 15]

実データの分割を作って数えると、今回の内側・外側のすべてのモデル構築側で、その候補を扱える件数は残っていた。件数だけで十分に似た膜が残るとは限らないので、構造の内訳と条件の範囲も保存した。

各回に同じ報告結果、同じ構造、同じ原著論文が両側へ入っていないことを点検する。

外側の推定値を集めれば、44 行のそれぞれに、自分の原著論文と構造の情報を使わなかった予測が一つずつ付く。

9 報の誤差をただ平均するのではなく、まずは 44 行の誤差から、前と同じ対数尺度の MAE と RMSE を計算する。その隣に、論文ごとの件数と誤差も置く。

多くの記録を報告した論文の結果は、行をまとめた平均に、それだけ多く寄与する。そのことも見えるようにしたかった。

「どちらの入力でも、同じ論文と構造を学習から外しています」

遥は、実行前の計画を先輩に見せた。

「ただ、前の構造だけの分割と比べると、学習に使う記録数も、残る構造や工程も変わります。誤差が変わった分を、全部『文献に共通する事情の影響』とは呼べません」

「そこは大切ですね。どの条件で比べた結果かを、二段に分けて示しましょう」

前の分割の中で、二つの入力を比べる。
今回の分割の中で、同じ二つの入力を比べる。

その違いを見れば、少なくとも、改善がどの条件で見えていたかを調べられる。

今あるデータと結果を見て考えた、探索中の点検であることも、計画の上に残した。

木曜日の朝、計算した結果を開くと、前の表の下に、もう二行が並んだ。

原著論文と構造の重なりを避けた点検。
元の入力:MAE 0.35、RMSE 0.47。
工程別の入力:MAE 0.36、RMSE 0.49。

遥は、最初に 0.26 を見てから、今度の 0.36 を見た。

一週間前のうれしさを、少しだけ返すような気分になった。

工程を整理した努力まで、取り消されたわけではない。そのくらいは、もう分かっている。

それでも、二つの入力の順番が逆になると、何を報告するか迷った。

画面を閉じる代わりに、各原著論文の結果へ移った。

9 報のうち、工程別の入力の方が MAE の小さいものは五つ、大きいものは四つだった。ところが、件数も誤差の変化量も同じではないため、44 行をまとめた MAE は工程別の入力の方が少し大きい。

よくなった論文が過半数なら、全体でもよくなる。

そう単純には決まらなかった。

P01 では、工程を詳しくしたときの改善が、今度の点検では残らなかった。

前の分割で近くにいた同じ色の膜は、今回は全部、学習側からいなくなっている。他の論文にある膜だけから、値を推定していた。

一方、別の原著論文では、工程別の入力の方が誤差は小さかった。

工程が役立たない、とまとめれば、そちらの記録を説明できなくなる。

遥は、二つの例を並べた。P01 だけを選んで結論を作らず、九つすべての結果も残した。

やがて、先輩が席へ来た。

「どうでした?」

「前と同じようには、改善しませんでした。別の原著論文と別の構造から予測する条件では、全体の MAE は 0.35 と 0.36 でした」

「では、元の入力の方が優れていると決めますか」

遥は首を横に振った。

「今回の計算では、元の入力の MAE の方が小さいです。でも、少数の文献での小さな差なので、広い範囲で優れているとは言えません。それに、意味の違う温度を混ぜた一列を、そのまま新しい膜の設計に使ってよい理由にもなりません」

小さい数字を返すことと、これから作る膜について意味のそろった入力を用意できることは、別に考える必要があった。

工程別に表せるようになった。
その表し方が、別の報告にも役立つかは、まだ十分には確かめられていない。

二つを、一つの勝ち負けにしなくてもよかった。

報告会では、遥は、色を付けた図と、原著論文と工程の対応表を最初に映した。

「今回の 44 行は、9 報の原著論文に由来していました。ある工程の組み合わせは 8 行ありましたが、その範囲では一つの論文にまとまっていました」

先生は、8 と書かれた欄を見た。

「同じ色が多ければ、データリークでしょうか」

「それだけでは決められません。前の比較は、確認した構造を外して予測する条件でした。同じ論文の別の構造が学習側に残ることは、その条件では起こります。ただ、その結果を、文献に共通する事情まで切り離した性能とは説明できません」

「今回の点検なら、別の研究室での性能まで分かりますか」

「そこまでは分かりません。別の論文でも、研究者や測定手順が共通することがあります。今回分けたのは、原著論文の番号と確認済みの構造です」

先生は、分割の図へ目を移した。

遥は、評価側と、同じ構造のため学習から外した記録を、色ではなく位置で区別して説明した。

「評価する記録は同じ 44 行です。ただ、前とは学習に使える記録が違います。外側だけでなく内側にも同じ考え方を使い、両方の入力方法で、各回の記録の対応をそろえました」

続いて、二つの条件の結果を並べた。

構造だけを分けた前の比較では、元の入力が MAE 0.29、工程別の入力が 0.26。
原著論文と構造の重なりを避けた今回の点検では、それぞれ 0.35 と 0.36。

どれも、二酸化炭素透過係数の常用対数の尺度だった。RMSE と各論文の件数も、同じ画面へ置いた。

「それなら、前の改善は、論文に共通する条件を覚えたせいですか」

先生に聞かれ、遥は、工程と原著論文の対応表へ戻った。

「その可能性を考える理由は増えました。でも、今回の結果だけで原因とは決められません。同じ論文を外したことで、実際に役立つ構造や工程の手がかりも減っています」

「何が言えますか」

「工程別の入力による全体の MAE の改善は、今回試した別の評価条件では確認できませんでした。どの論文でも一様によくなったわけでもありません。別の研究へ持ち出せる改善だと、今の結果だけで主張するのは難しいです」

前の 0.26 を消していないことも話した。

その数字が得られた条件は、今も説明できる。今回の結果が出たからといって、過去の計算が存在しなかったことになるわけではない。

先生は、対応表の空いた欄を指した。

「では、その違いをもう少し確かめるには、どんな記録が必要でしょう」

遥は、少し前なら「データを増やします」と答えたと思った。

今は、増やしたい場所があった。

「今の表では一つの論文に偏っている工程を、別の報告でも確かめたいです。それから、同じ高分子で工程だけを変えた比較と、その比較を別の高分子でも行った記録があると、工程と構造の違いを整理しやすくなると思います」

「新しい論文を一報加えれば、独立な確認になりますか」

「引用された同じ値の再掲かもしれないので、出典の対応から確かめます。今回の方法を考えるためにすでに読んだ結果かどうかも残します。新しいファイルに保存するだけでは、新しい評価にはなりません」

遥は、探索中と書いた見出しを指した。

「方法の定義と評価の規則を記録してから、まだその判断に使っていない記録で確かめる計画を作りたいです。どの記録を探すかも、結果がよくなりそうだからではなく、確認したい比較から決めます」

先生はうなずいた。

「よいと思います。ただ、文献だけで必要な比較がそろうとは限りません。作る人とも、どこまで条件をそろえられるか相談しましょう」

報告会のあと、遥は、前に工程の図を見てもらった大学院生へ相談するため、資料を一枚にまとめた。

画面いっぱいの入力表ではなく、何を確かめたいかが分かる図にした。

同じ高分子について、二つの作製条件を比べる。
その対比を、別の高分子でも確かめる。

四つの箱を描くと、実験計画らしく見えた。

けれど、まだ温度や時間を自由に入れてよい箱ではない。どの範囲なら膜を作れ、他の条件をどこまでそろえられるかは、これから相談する内容だった。

先生を交えた短い打ち合わせで、その図を見せた。

大学院生は、二つの条件を結ぶ矢印を見た。

「どの操作だけを変えたいですか。それとも、文献にある二つの手順全体を比較したいですか」

遥は、矢印へ書きかけた「工程の効果」という言葉を見た。

「そこを分けて決めたいです。手順全体を変えたら、温度だけの効果とは言えません。まず、今回の工程表で区別した条件のうち、何ならほかをそろえて比較できるかを相談したいです」

「同じ膜を何回か測ることと、同じ条件で膜を作り直すことも、分けて記録したいですね」

大学院生は、一つの箱の下に、小さな膜を二枚描いた。

「作り方による違いを見たいなら、作製ごとのばらつきも気になります。測定値が二つあっても、それだけでは、二枚の膜を作ったことにはなりません」

第2章で文献の数字に対して考えた区別が、これから作るデータの話になった。

遥は、図へ試料と測定を結び付ける欄を加えた。

「この四つの箱が埋まれば、未知の構造への予測も確かめられますか」

先輩に聞かれ、遥は答えを急がなかった。

「その構造をモデル構築に使っていたかによります。すでに使った高分子で工程差を調べることと、未使用の構造を予測する評価は、別の問いです。実験を相談するときにも、どちらを確かめるためかを書きます」

今週、新しい膜ができるわけではなかった。

それでも、作ってほしい材料の名前を渡す前に、何を比べたいのかを相談できた。

大学院生は、余白の多い図を見て言った。

「このくらいの段階なら、比較の仕方から一緒に考えられますね」

席へ戻る途中、先輩が、秋の国内学会の案内を見ていた。

「もう少し検討を進めたら、外の人にも聞いてもらえる形にしたいですね」

遥は、自分の結果の表を思い出した。

「まだ、どうすればよくなるかは、決まっていません」

「では、どこでよくなって、どの条件では同じようによくならなかったかは?」

「それなら、今回調べた範囲で説明できます」

すぐに発表へ申し込むと決まったわけではない。けれど、外で話せるのは、成功した一枚の図だけではないのかもしれないと思った。

遥は、今度の整理を保存した。

original_paper_mapping_v01.csv。
process_paper_coverage_v01.csv。
paper_structure_splits_v01.csv。
paper_structure_predictions_v01.csv。

前の 44 行の比較結果は、上書きしていない。各回にどの記録を評価し、何を学習から外したかを、新しい予測に結び付けた。

slack には、今週確かめたことを短く書いた。

44 個の報告結果について、工程条件と元の報告論文の対応を確認しました。一部の工程の組み合わせは、少数の原著論文に偏っていました。
原著論文を一報ずつ評価側へ残し、同じ構造の記録も学習側から外す点検を、同じ二つの入力方法で行いました。
この条件での MAE は、元の入力が 0.35、工程別の入力が 0.36 でした。前の構造分割で見えた全体の改善は、同様には確認できていません。
文献に共通する事情だけが原因と決まったわけではなく、学習に使える記録の違いも含む結果です。
次は、追加で確かめたい構造と工程の組み合わせ、比較に必要な記録項目を整理し、文献で補える範囲と実験で確認したい範囲を相談します。

送信してから、遥は、最初に色を付けた散布図を開いた。

同じ色の近傍は、もう、ただ疑わしい点の集まりには見えなかった。

今の予測を支えている、具体的な報告だった。

その報告を離れても使えるのか。
使うためには、何を追加で確かめればよいのか。

色を分けたことで、次に知りたい場所も見えた。

遥は、P01 だけで埋まっていた工程の欄の横に、小さな空欄を描いた。

前なら、空欄は埋め忘れたところに見えた。

今日は、これから調べる理由のある場所だった。

そこへ、まだない数字を想像で入れる代わりに、一つの問いを書いた。

この工程を、別の材料と別の記録でも確かめるには、何が必要か。

モデルを変える前に、次に集めたい情報を、自分で選び始めていた。

===

続きはこちら

タイトルとURLをコピーしました