POINT 01
配列生成を強化学習の環境として設計
「アミノ酸を1つ付け加える」ことを行動、配列の状態を観測とする独自の環境をGymの仕様で実装しました。設定した長さに達するまで、エージェントが残基を選び続けて配列を組み立てます。
「活性を予測する」モデルを、「活性を持ちそうな配列をつくる」仕組みへ発展させました。学習済みの活性予測モデルを報酬として用い、強化学習によってアミノ酸配列を1残基ずつ組み立てる生成モデルを開発しています。
Challenge_
構造活性相関モデルによって、配列から活性を予測できるようになっていました。次の段階として、その知見を使い、活性を持つ可能性の高い新たな配列候補を得ることが求められました。
Architecture_
エージェントがアミノ酸を1つずつ選んで配列を伸ばし、活性予測モデルの判定を報酬として学習します。学習後のモデルで配列を生成し、活性ありと予測された候補だけを出力します。
Key Points_
予測モデルと生成モデルを別々のシステムとして保ちながら、学習結果を受け渡すだけで連携できる構成にしました。
POINT 01
「アミノ酸を1つ付け加える」ことを行動、配列の状態を観測とする独自の環境をGymの仕様で実装しました。設定した長さに達するまで、エージェントが残基を選び続けて配列を組み立てます。
POINT 02
構造活性相関モデルの学習結果を取り込み、複数の機械学習モデルとCNNによる重み付き投票で活性を判定します。判定結果を報酬とすることで、活性を持つと予測される配列を生成するよう学習が進みます。
POINT 03
状態は「アミノ酸配列そのもの」と「構造記述子」から、報酬は「1残基ごと」と「配列完成時のみ」から設定で選べます。研究の目的やデータに合わせて、学習の設計を比較検討できます。
POINT 04
PPOによる学習と、学習済みモデルによる配列生成を別々に実行できます。生成時は活性ありと予測された配列だけを指定件数まで出力し、そのまま次の検証に使える候補リストを得られます。
Tech Stack_
強化学習のフレームワークに、活性予測側で使用している化学情報処理・機械学習のライブラリを組み合わせています。
| 区分 | 技術 | 用途 |
|---|---|---|
| 強化学習 | Stable-Baselines3(PPO) | 配列を生成する方策の学習 |
| 学習環境 | Gym | 配列生成を行う独自環境の実装 |
| 活性予測 | scikit-learn/XGBoost/LightGBM/CatBoost/PyTorch | 学習済みモデルによる活性の判定(報酬) |
| 化学情報処理 | RDKit/Mordred | 生成した配列の構造記述子の計算 |
| 学習の監視 | TensorBoard | 報酬などの学習推移の確認 |
Outcome_
Contact_
扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。
研究開発について相談する