データ化学工学研究室物語 第Ⅱ部 第1章 卒業研究テーマが決まる

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

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

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

第1章 卒業研究テーマが決まる

 

四月になっても、研究室のキーボードの音は変わらなかった。

変わったのは、遥が座る場所だった。

見学やトレーニングのときに使っていた打ち合わせ用の机ではなく、窓際の一角に、自分の席ができていた。机の上には、研究室のパソコンと、卒業研究用に買った新しいノートがある。

隣の席では、同期の学生が電源コードをほどいていた。

「いよいよ研究だね」

「うん」

返事をしてから、遥はパソコンを開いた。

slack のトレーニング用のやり取りには、先週の最終発表の資料が残っている。次の課題は、まだ届いていなかった。

十週間、毎週そこに書かれたことから一週間が始まった。

今度は、何から始まるのだろう。

午前中、四年生になった五人が打ち合わせ用の机に集まった。先生は、顔合わせで使った資料をもう一度開いた。

研究成果をあげること、ではなく。
研究成果をあげ続ける力をつけること。

遥は、新しいノートの最初のページに、その言葉を書いた。

「トレーニングが終わりました。これからは、実際の研究テーマを相談して決めます」

先生は、一人ずつ、どんな研究に興味があるかを尋ねた。

反応の収率を予測してみたいという学生がいた。プラントの運転データを扱いたいという学生もいた。卒業後についても、就職と進学の間で迷っている人、修士課程を考えている人と、答えはそれぞれ違っていた。

資料の後ろには、博士後期課程についてのページもあった。

博士を経て企業で研究する、という進路の矢印が、遥の目に入った。

「進路は、研究をしながら考えていってください。博士課程も、大学教員になる人だけの選択肢ではありません。関心が出てきたら相談しましょう」

博士課程。

まだ、遠かった。

遥はノートの端に、その言葉だけを書いた。今日決めなければならないのは、もっと手前にある気がした。

「瀬戸さんは、高分子膜でしたね」

先生に呼ばれ、遥は顔を上げた。

「はい。高分子の構造と、膜の作り方の両方から、性能を考える研究をしたいです」

「トレーニングで、どこが一番気になりましたか」

遥は、少し考えた。

「同じ構造でも値が違うところです。それから、新しい構造を予測したいのに、既知の構造から離れるほど予測の根拠が弱くなるところです」

先生は、手元の資料を一枚出した。

高分子構造と製膜条件を考慮した、二酸化炭素分離膜の性能予測。

仮の研究テーマだった。

「研究室に、先輩たちが文献から整理してきたデータがあります。構造だけでなく、作製条件をどこまで考慮できるかも調べていました。まず、その仕事を引き継ぐところから始めてみませんか」

遥は、その題名を見た。

前の発表と、言葉は似ている。

けれど、今度は演習用のデータではない。論文を読み、実験の条件を確かめながら、誰かが少しずつ集めてきた記録だった。

「お願いします」

答えると、先生は題名の下の空白を指した。

「では、このテーマで、瀬戸さんは何を明らかにしたいですか」

遥は、題名をもう一度読んだ。

「構造と製膜条件から、膜の性能を予測したいです」

「それができると、次に何を判断できるようにしたいのでしょう」

題名を言い換えただけでは、足りなかった。

「まだ作っていない構造と製膜条件の組み合わせについて、次に実験で確かめる候補を選びたいです」

「はい。そのために、今の方法で何ができて、何ができていないかを確認しましょう。題名が決まっても、研究する問いが全部決まったわけではありません」

遥は、題名の下に書いた。

まだ作っていない構造と製膜条件を、次の実験候補として比較できるか。
そのために、今のデータと方法には何が足りないか。

先生は、その二行を見た。

「最初は、それを調べるところからでよいです。調べた結果、問いを絞り直すこともあります」

研究テーマが決まるとは、あとは手順どおりに進めればよい状態になることだと、どこかで思っていた。

実際には、題名の下に、考えるための空白ができたところだった。

午後、紺色のパーカーの先輩が、遥の新しい席に来た。

「引き継ぎ用のフォルダを、slack に共有しました」

中には、データ、プログラム、過去の発表資料、文献の一覧が入っていた。

membrane_records_v02.csv。
membrane_descriptors_v02.csv。
baseline_prediction.ipynb。
analysis_notes.txt。

「この一式は、前に結果を出したときの版です。まず、同じデータと設定で、同じ結果になるか確認してください。今整理している新しいデータとは、混ぜないようにしましょう」

遥は、analysis_notes.txt を先に開いた。

使用するファイル名。目的変数の列。計算する記述子。分割の設定。過去の結果。

途中には、「確認中」と書かれた項目もあった。

「完成版ではないんですね」

「研究の途中なので。僕より前の先輩が集めた記録もあります。分かっていることは書いてありますが、全部の行を僕が原著論文まで確かめ終えたわけではありません」

遥は、表を開いた。

record_id、source_id、structure_group。
繰り返し単位の構造。
製膜条件、測定条件。
二酸化炭素と窒素の透過係数、選択性。

列名は、トレーニングで見たものと似ていた。

一方で、説明欄はずっと長かった。原著論文の表から取った値、本文中に書かれていた条件、別の文献で再掲されていた値。それぞれの記録に、違う来歴があった。

空欄もある。

ただ、その空欄が何を意味するかまで、すべて書かれているわけではなかった。

トレーニングのデータ辞書では、読めば一つずつ意味が分かった。今度は、説明を読んでも確認が必要な場所が残る。

遥は、ノートに小さく「出典」と書いた。

「今回も、目標は透過係数が 1,000 Barrer 以上、選択性が 25 以上ですか」

「そのままでは決めません。あれは演習用の値でしたね。今回は、対象にする条件と、何に使う予測かを整理してから相談しましょう」

先輩は、候補選択ではなく、既存の解析結果を開いた。

「二つの物性を扱う研究を目指しますが、引き継ぎの最初は、二酸化炭素透過係数のモデルを確認します。選択性まで一度に進めて、どこで違いが出たか分からなくなるのを避けたいので」

遥はうなずいた。

最初の仕事は、新しい高性能材料を選ぶことではなかった。

先輩がどのデータを、何の目的で、どう使ったのかを、自分の手元でたどれるようにすることだった。

翌日、遥は引き継いだフォルダを複製し、元の一式はそのまま残した。

Notebook に使われているのは、トレーニングでも扱った k 近傍回帰だった。透過係数は常用対数に変換されている。

解析用には、所定の測定温度で単一気体を測った記録から、透過係数と入力に必要な値がある行を取り出していた。収集した表の全行を、そのままモデルに渡しているわけではなかった。

前処理とモデルは Pipeline にまとめられ、近傍数はトレーニングデータの中で選ぶようになっていた。外側の評価には、グループを分ける処理があった。

遥は、少し安心した。

標準化を先に全データでしてはいけないことも、評価側を見ながら近傍数を選んではいけないことも、コードに反映されている。

原料や膜を準備する前に得られない値を、入力に入れている様子もない。

これなら、まず動かせそうだった。

実行すると、途中でファイルが見つからないというエラーが出た。

読み込むフォルダの場所を直し、どこを変えたかをメモする。別のエラーでは、研究室の実行環境の説明を確認した。値の計算を変える修正なのか、手元で動かすための修正なのかも、分けて残した。

ようやく最後まで動いたとき、実測値と推定値の散布図が表示された。

対角線の近くに、点が集まっていた。

外側の評価結果には、次の値があった。

MAE:0.10。
RMSE:0.15。

二つとも、二酸化炭素透過係数を常用対数に変換した尺度での誤差だった。

遥は analysis_notes.txt の数値と照らし合わせた。記載された桁では一致している。

対象サンプルの一覧と分割の記録も、保存されていたものと一致した。

自分のパソコンでも、先輩と同じ結果が出た。

ノートに「再現できた」と書くと、今まで新しい席で少し浮いていた自分が、研究の中へ入れたような気がした。

トレーニングで未知の構造を予測したときの MAE は 0.41 だった。今度の 0.10 は、それよりずっと小さい。

ただし、違うデータに対する値だった。

遥は二つの数字を並べかけて、やめた。サンプルも、含まれる構造も、作製条件の情報も違う。前より良いモデルになったと、それだけで言ってはいけない。

それでも、目の前の散布図は、うれしかった。

次には、この結果を少し良くしたい。

記述子を増やせば、まだ良くなるだろうか。別の回帰手法ならどうだろう。

遥は対話型AIを開き、考えられる追加検討を尋ねた。

入力の表し方を変える。別の回帰手法を比較する。誤差の大きいサンプルを調べる。データの偏りを確認する。

どれも、もっともらしかった。

新しい手法の名前を二つ、ノートへ写したところで、最初の進捗報告の日が近づいていることに気づいた。

今から動かせば、比較の図をもう一枚増やせるかもしれない。

その方が、報告らしくなる気がした。

四年生になって初めての進捗報告会で、遥は、再現した散布図を映した。

「引き継いだデータとプログラムを使い、過去の解析結果を再現しました。二酸化炭素透過係数の対数値について、外側の評価の MAE は 0.10、RMSE は 0.15 でした」

使ったデータの版と、評価手順も説明した。

先生はうなずいた。

「同じ結果までたどれたのはよいですね。では、何を予測できることを、この図で確認しましたか」

「高分子の構造と製膜条件から、未知の膜の透過係数を予測しています」

「この場合の『未知』は、何が未知ですか」

遥は、グループ分割の図を出した。

「構造ごとにグループを分けているので、未知の高分子構造です」

「構造のグループは、どう決めましたか」

「データにある structure_group の列を使いました」

先生は、コードではなく、データの説明を開くように言った。

structure_group:収集時に付与した構造のグループ番号。

そこには、そう書かれていた。

「同じ化学構造には、この表の全体で同じ番号が付いていますか」

遥は、すぐには答えられなかった。

同じ番号の行が評価側とトレーニング側に分かれていないことは、確かめた。

しかし、番号の違う行が、本当に違う化学構造を表しているかまでは確認していない。

「そこは、まだ調べていません」

声にすると、画面の端にある 0.10 が、さっきほど確かな数字には見えなくなった。

自分は、トレーニングで何を学んだのだろう。

同じ構造を両側に入れない。使いたい未来を再現する。言葉なら、何度も説明した。

今回は、グループ分割の処理があるのを見て、その言葉を確かめたつもりになっていた。

先輩が、隣から説明した。

「その番号は、文献ごとに整理していた表から引き継いだものもあります。同じ構造の表記を、文献をまたいでどこまでそろえたかは、確認が必要です」

先生は、遥のスライドへ視線を戻した。

「プログラムが行っているのは、与えられた番号でグループを分けることですね。それが、瀬戸さんの考える『未知の構造』と一致するかは、データの意味の側で確認する必要があります」

コードには、明らかにおかしい処理がなかった。

だからこそ、安心してしまった。

遥は、「未知構造への予測性能を確認した」という一文を見た。

その下に、修正する内容を書いた。

引き継いだグループ番号による評価結果を再現した。
番号と化学構造の対応は確認中。

先生は、そのメモを待ってから続けた。

「今日は、モデルが使えないと結論したわけではありません。まだ、何に使えるという根拠になっているかを、確かめ切れていないということです」

遥は、小さく息をついた。

「結果を再現することは必要です。ただ、その結果を自分の研究目的に使うには、もう一つ仕事がありますね」

「はい。前の解析の目的と、自分が予測したいものが同じかを確認します」

次のスライドには、追加で試そうとした手法の名前があった。

先生は、それを否定しなかった。

「手法の比較も候補です。ただし、その前に、比べた数字が何を意味するかをそろえたいです。今、一つだけ先に確かめるなら、何にしますか」

遥は、まだ白い部分の多いデータ辞書を見た。

「違うグループ番号になっている行の中に、同じ高分子構造がないかを確かめます」

今週の報告で、自分から置いた、最初の次の一歩だった。

報告会のあと、遥は席へ戻った。

再現したグラフを閉じる気になれず、そのまま見ていた。

先輩が、隣に椅子を寄せた。

「全部やり直しだと思っています?」

「少し」

「動くところまで確かめたことは、残っています。今回の結果が、どのファイルと設定から出たかも分かります。そこがそろっていれば、データの整理を変えたとき、何が変わったかを調べられます」

遥は、再現用に保存したフォルダを見た。

作業した意味が、なくなったわけではなかった。

「でも、また、言われたプログラムを動かしただけになっていました」

「動かすことが悪いわけではありません。それを何の確認として行ったか、次に何を自分で確かめるかですね」

先輩は、過去の発表資料の最後を開いた。

文献間の構造表記の対応付け。
重複する記録の確認。
作製条件の記載範囲の整理。

今後の課題として、三つの項目が残されていた。

遥は、そのスライドを先に読んでいなかった。モデルの説明と結果のページを見れば、解析の要点は分かると思っていた。

引き継がれたのは、完成した答えではない。

できたことと、まだできていないことが、一つのフォルダに入っていた。

「構造をそろえれば、MAE は大きくなりますか」

「そうなる可能性はあります。でも、まだ確かめていません。今の小さい誤差が何によるのかも、一つの理由に決めない方がよいです」

「先輩の結果が間違っていたということではないんですね」

「元の条件で得た結果と、それを別の目的へ使う判断は分けましょう。もし処理やデータに誤りが見つかったら、直す必要はあります。そのときは、どこがどう違ったかを残します」

遥はうなずいた。

先輩の結果を、疑わず受け取るのでもない。
間違いを見つけるためだけに読むのでもない。
自分の研究で使うために、根拠をたどる。

「まず、どの行から見ますか」

先輩に聞かれ、遥は表を開いた。

全体を一度に直すのは難しい。

最初に、番号が違うのに構造記述子の値がよく似ている二行を選んだ。

記述子が同じでも、構造が同じとは限らない。エタノールとジメチルエーテルの例を思い出し、繰り返し単位の構造も並べて表示した。

片方は左から右へ、もう片方は逆向きに描かれていた。見比べると、同じ原子のつながりに見える。

「同じかもしれません」

「では、どこを見れば確認できるでしょう」

「この構造式の出典です。共重合体なのか、単独の高分子なのかも、元の説明で確認したいです」

その二行の測定温度は同じだった。

透過係数と選択性も、表示された桁では一致していた。

一方で、source_id は違っている。

別の論文から集めた、別のサンプルなのだろうか。

それとも、同じ実験の結果が、別の論文でも引用されていたのだろうか。

遥は、source_id に対応する文献一覧を開いた。片方は高分子膜を作製して性能を報告した論文、もう片方は複数の膜の性能をまとめた論文だった。

まとめた論文の表には、小さな引用番号が付いていた。

引用先の題名を開くと、もう一方の出典と一致した。

画面の上では、二行に分かれていた。

けれど、その二行の向こうに、二回の独立した実験があるとは限らなかった。

遥は、二つの記録を削除しなかった。

新しい確認用の表に、record_id、構造、物性値、出典、元の表の位置を書いた。

確認できたこと:一方の表が、もう一方の論文を引用している。
まだ確認していないこと:同じ試料・同じ測定結果を再掲した値なのか。
次に見るもの:原著論文の表、実験方法、補足資料。

数値が一致するだけで、重複と決めてよいわけではない。

同じ構造でも、別々に作った膜かもしれない。同じ膜を繰り返し測った記録かもしれない。同じ測定結果を、資料だけ変えて収集したのかもしれない。

その区別は、モデルの種類を変えても分からなかった。

さらに、遥は保存された分割の一覧を見た。

ある外側の分割では、その二行がトレーニング側と評価側に分かれていた。

それだけで、全体の MAE 0.10 の理由が分かったわけではない。

しかし、「未知の構造を予測した」と説明する前に確認すべき場所が、具体的に一つ見つかった。

遥は先輩へ画面を見せた。

「この二行から、元の測定へ戻ってみます。あと、同じ構造と考えられるのに番号が違う行を、他にも探したいです。ただ、全部を自動で同じにする前に、いくつか元の論文で確かめます」

先輩は、メモの「まだ確認していないこと」を読んだ。

「よいと思います。構造が同じことと、観測記録が同じことも、別に整理しましょう。途中で判断に迷った行は、一緒に見ます」

遥は、その二つをノートに書き分けた。
同じ化学構造か。
同じ観測結果か。

トレーニングでは、「一行は何か」という課題が届いていた。

今度は、誰もその題名の課題を送っていない。

それでも、自分の結果を説明しようとしたら、その問いへ戻る必要があった。

夕方、隣の席の同期が、遥の画面を見た。

「モデル、できた?」

「先輩と同じ結果は出た」

「すごいじゃん」

遥は、散布図の下に開いていた文献の表を見た。

「でも、何を予測できたかは、まだ確認中」

そう答えても、前のように、何もできなかった一日だとは思わなかった。

新しいモデルは作っていない。誤差も小さくしていない。

その代わり、明日どの論文のどの表を読めばよいかが決まっていた。

机の向こうでは、別の先輩が学会発表の図を直していた。先生と二人で、一つの軸名について話している。

研究室の外で、自分の結果を説明する。

最終発表のあとに想像したことは、今も少し先にあった。

そのとき、あの二行を「二つの実験データです」と、根拠を持って言えるだろうか。

いま原著論文へ戻ることも、その発表につながっているのかもしれなかった。

遥は、slack に短い進捗を書いた。

引き継いだ版のデータと設定で、過去の評価結果を再現しました。
ただし、structure_group が文献をまたいで同じ構造をまとめているかは、未確認です。
異なる番号の二行について、構造と数値が一致して見え、出典同士にも引用関係があることを確認しました。
まず原著論文へ戻り、同じ構造なのか、同じ観測結果の再掲なのかを分けて調べます。元のデータは変更していません。

最後に、相談したいことを一つ加えた。
再掲された同じ測定結果と、独立に作製・測定された膜の結果を、解析用データでどう区別するか相談したいです。

先生から、返信が届いた。

その二行と、確認した出典を、次回一緒に見ましょう。
再現した結果と、そこから分かった確認事項を分けて書けていると思います。
分からないところは、調べた範囲と一緒に持ってきてください。

遥は、ノートの最初のページへ戻った。

高分子構造と製膜条件を考慮した、二酸化炭素分離膜の性能予測。

この春、決まった研究テーマだった。

その下には、まだ作っていない材料を比較したいという、少し大きな問いがある。

さらに下へ、小さな問いを足した。

この二行は、二つの独立した観測なのか。

題名から見ると、ずいぶん手前の話に思えた。

でも、ここを曖昧にしたままでは、先の予測を自分の言葉で説明できない。

引き継いだデータを使うことと、引き継いだ判断をそのまま使うことは、違っていた。

遥は、読む予定の原著論文を開いたまま、明日の作業を一行だけ書いた。

まず、この数字が生まれた場所を確かめる。

次の課題が届くのを待つ必要は、もうなかった。

===

続きはこちら

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