CASE 05配列の生成

予測モデルを報酬に、
強化学習で活性配列を生成

「活性を予測する」モデルを、「活性を持ちそうな配列をつくる」仕組みへ発展させました。学習済みの活性予測モデルを報酬として用い、強化学習によってアミノ酸配列を1残基ずつ組み立てる生成モデルを開発しています。

CLIENT
微生物系研究室
SCOPE
強化学習モデルの設計・実装
ENVIRONMENT
スーパーコンピューター(ジョブ投入)
TECHNOLOGY
  • Python
  • Stable-Baselines3
  • Gym
  • PyTorch

研究で求められたこと

構造活性相関モデルによって、配列から活性を予測できるようになっていました。次の段階として、その知見を使い、活性を持つ可能性の高い新たな配列候補を得ることが求められました。

  • 膨大な組み合わせから候補を探すアミノ酸配列は長さに応じて組み合わせが爆発的に増えるため、総当たりでの評価は現実的ではありません。
  • 既存の予測モデルを活かすすでに構築した活性予測モデルを、そのまま生成の評価基準として使える必要がありました。
  • 生成の条件を研究に合わせて変える使用するアミノ酸の種類や配列の長さなど、研究テーマに応じて条件を調整できることが求められました。

処理の全体像

エージェントがアミノ酸を1つずつ選んで配列を伸ばし、活性予測モデルの判定を報酬として学習します。学習後のモデルで配列を生成し、活性ありと予測された候補だけを出力します。

強化学習による配列生成の仕組みエージェントが行動として次のアミノ酸を1つ選び、Gymで実装した環境が配列を伸ばす。配列またはその構造記述子を状態として、CASE 01の活性予測モデル(機械学習とCNNの重み付き投票)が活性を判定し、その結果を報酬としてPPOで方策を更新する。学習後は、活性ありと予測された配列だけを候補リストとして出力する。01 REINFORCEMENT LEARNING LOOP02 GENERATIONエージェントPPO で方策を更新Stable-Baselines3環境(Gym)MKTA?設定した長さまで1残基ずつ追加活性予測モデルCASE 01 の学習結果を利用MLCNN→ 重み付き投票ACTION次のアミノ酸を1つ選ぶSTATE配列/構造記述子REWARD活性ありの判定を報酬に(1残基ごと/完成時)学習後候補配列のリスト活性ありと予測された配列のみMKTAWLRKGFMKRLWGKAFTMATSGEQPLD除外MKKWLRAGFRMRKLWGKTFA指定件数まで出力
FIGUREエージェントがアミノ酸を1つずつ選んで配列を伸ばし、活性予測モデルの判定を報酬として学習。学習後は活性ありと予測された候補だけを出力します。

INPUT

  • 学習済みの活性予測モデルCASE 01で構築した機械学習・CNN
  • 使用するアミノ酸のリスト
  • 生成条件配列長・報酬の与え方など

PROCESS

  1. アミノ酸の選択エージェントが次の1残基を決定
  2. 状態の更新配列そのもの、または構造記述子で表現
  3. 活性の判定複数の予測モデルによる重み付き投票
  4. 方策の更新判定結果を報酬としてPPOで学習

OUTPUT

  • 学習済みの生成モデル
  • 候補配列のリスト活性ありと予測された配列のみ
  • 学習ログTensorBoardで推移を確認

開発のポイント

予測モデルと生成モデルを別々のシステムとして保ちながら、学習結果を受け渡すだけで連携できる構成にしました。

POINT 01

配列生成を強化学習の環境として設計

「アミノ酸を1つ付け加える」ことを行動、配列の状態を観測とする独自の環境をGymの仕様で実装しました。設定した長さに達するまで、エージェントが残基を選び続けて配列を組み立てます。

  • Gym
  • カスタム環境

POINT 02

活性予測モデルをそのまま報酬に

構造活性相関モデルの学習結果を取り込み、複数の機械学習モデルとCNNによる重み付き投票で活性を判定します。判定結果を報酬とすることで、活性を持つと予測される配列を生成するよう学習が進みます。

  • アンサンブル
  • 報酬設計

POINT 03

状態表現と報酬の与え方を選択可能に

状態は「アミノ酸配列そのもの」と「構造記述子」から、報酬は「1残基ごと」と「配列完成時のみ」から設定で選べます。研究の目的やデータに合わせて、学習の設計を比較検討できます。

  • Mordred
  • 設定ファイル

POINT 04

学習と生成を分けた運用

PPOによる学習と、学習済みモデルによる配列生成を別々に実行できます。生成時は活性ありと予測された配列だけを指定件数まで出力し、そのまま次の検証に使える候補リストを得られます。

  • Stable-Baselines3
  • PPO
  • TensorBoard

技術構成

強化学習のフレームワークに、活性予測側で使用している化学情報処理・機械学習のライブラリを組み合わせています。

区分技術用途
強化学習Stable-Baselines3(PPO)配列を生成する方策の学習
学習環境Gym配列生成を行う独自環境の実装
活性予測scikit-learn/XGBoost/LightGBM/CatBoost/PyTorch学習済みモデルによる活性の判定(報酬)
化学情報処理RDKit/Mordred生成した配列の構造記述子の計算
学習の監視TensorBoard報酬などの学習推移の確認

実現したこと

  • 予測から生成への展開活性予測モデルの学習結果を使い、活性を持つと予測される新たな配列候補を生成できるようになりました。
  • 探索の効率化総当たりではなく、報酬に基づいて学習したエージェントが配列を組み立てることで、候補を効率よく得られます。
  • 研究に合わせた条件設定アミノ酸の種類、配列長、状態表現、報酬の与え方を設定で切り替えられます。

研究テーマに合った開発方法を、
一緒に検討します

扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。

研究開発について相談する