We argue and show empirically that in the context of deep learning it is better to learn equivariant rather than invariant representations, because invariant ones lose information too early on in the network.
(DeepLによる翻訳) 我々は、深層学習の文脈では、不変な表現よりも同変な表現を学習する方が良いことを主張し、経験的に示している。なぜなら、不変な表現はネットワークの早い段階で情報を失いすぎてしまうからである。
Equivariant Neural Networksについて調査しているときに、対象領域が非常に近く、よく出てくるキーワードとして「Geometric Deep Learning」という言葉がある。2021年に公開されたGeometric Deep Learningの文献[2]では、Geometric Deep Learningを以下のように説明しており、対称性に着目していることがわかる。
We call this geometrisation attempt "Geometric Deep Learning", and true to the spirit of Felix Klein, propose to derive different inductive biases and network architectures implementing them from first principles of symmetry and invariance.
(DeepLによる翻訳) 我々はこの幾何学的な試みを「Geometric Deep Learning」と呼び、Felix Kleinの精神に忠実に、対称性と不変性の第一原理から様々な帰納的バイアスとそれを実装したネットワークアーキテクチャを導出することを提案する。
また、文献の5.2節「Group-equivariant CNNs」では、群同変なCNNについて解説されている。このように両者は重なる部分が多い研究領域であるが、Geometric Deep Learningは同変性のみにフォーカスしていないことなどからより対象領域が広いと考えられる。
図のように、入力画像「7」を畳み込み処理して得られた特徴マップを左上に並進移動させたものは、入力画像を同様に左上に並進移動した画像を畳み込み処理して得られた特徴マップと一致する。
つまり、入力画像を並進移動させても、対応する特徴マップも同様に並進移動する。
これは、畳み込み処理が、画像全体で同じ重みを共有したフィルタを用いて、画像に対してフィルタを並進移動させながら内積をとるといった処理を行っているためである。畳み込み層はこの重みの共有により並進移動に対する同変性と全結合層と比べたパラメータ数の削減を実現している。実際にCNNでは、出力層の前にGlobal Average Pooling(GAP)を適用することが多く、これによりモデル全体としては並進に対して不変性となる。
また、E. J. Bekkers氏は、「Group Equivariant Deep Learning」というタイトルの講義をYouTubeで公開しており、既存のEquivariant Neural Networksを数学的な背景から解説してくれている。その講義スライドの中で同変なCNNに関するこれまでの歴史がまとめてある。
医薬品として使われる低分子化合物やタンパク質(抗体)も分子であるため、ここで述べる創薬は分子設計に含めても良いが、背景として創薬にフォーカスしているものを切り出して紹介する。
H. Stärkらは、低分子化合物が特定の標的タンパク質にどのように結合するかを予測するために、SE(3)に対して同変なNNであるEQUIBINDを提案した[12]。EQUIBINDは、受容体の結合位置とリガンドの結合姿勢・向きを予測することができる。
また、O. E. Ganeaらは、タンパク質複合体の立体構造を予測するために、SE(3)に対して同変なNNであるEQUIDOCKを提案した[13]。EQUIDOCKは、結合ポケットの近似やドッキングポーズの予測を行うことができる。
[1] T. Cohen, "Equivariant Convolutional Networks" (2021). [2] M. M. Bronstein et al., "Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges" (2021). [3] T. Cohen et al., "Group Equivariant Convolutional Networks" (2016). [4] T. Cohen et al., "Steerable CNNs" (2017). [5] T. Cohen et al., "Spherical CNNs" (2018). [6] E. J. Bekkers, "B-Spline CNNs on Lie Groups" (2020). [7] V. G. Satorras et al., "E(n) Equivariant Graph Neural Networks" (2021). [8] E. J. Bekkers et al., "Roto-Translation Covariant Convolutional Networks for Medical Image Analysis" (2018). [9] P. Müller et al., "Rotation-Equivariant Deep Learning for Diffusion MRI" (2021). [10] T. Le et al., "Equivariant Graph Attention Networks for Molecular Property Prediction" (2022). [11] V. G. Satorras et al., "E(n) Equivariant Normalizing Flows" (2021). [12] H. Stärk et al., "EQUIBIND- Geometric Deep Learning for Drug Binding Structure Prediction" (2022). [13] O. E. Ganea et al., "Independent SE(3)-Equivariant Models for End-to-End Rigid Protein Docking" (2022).
To determine the impact of a feature, that feature is set to "missing" and the change in the model output is observed. Since most models aren't designed to handle arbitrary missing data at test time, we simulate "missing" by replacing the feature with the values it takes in the background dataset.
# warn users about large background data setsiflen(self.data.weights) > 100:
log.warning("Using " + str(len(self.data.weights)) + " background data samples could cause " +
"slower run times. Consider using shap.sample(data, K) or shap.kmeans(data, K) to " +
"summarize the background as K samples.")
この2点の制約により,機械学習やデータサイエンスの力だけでなくエンジニアリング力も試されました.
まず,メモリ上限についてですが,学習データのCSVファイルを普段通りpandasでread_csvしたところ,読み込みに数十分かかる上にメモリが上限の16GBを超えてしまいエラーになりました.というのも学習データのCSVは,行数が1億を超えていました.さっそくデータの読み込みさえできずに焦りましたが,公開Notebookに「Tutorial on reading large datasets」という素晴らしいNotebookがあり,データ型をきちんと指定することや,読み書きが早いファイル形式を利用することなど知見が溜められていました.
次に,予測時間の制限についてですが,私は最初,学習データで作った独自の特徴量をPandasのDataFrameで保持し,テストデータに対してPandasのmerge関数でLeft joinすることで特徴量を追加していましたが,どうやらこのDataFrameのjoinの処理が遅いらしく,推論時間を9時間以内おさめることができませんでした.これもまた素晴らしいNotebookに助けられて「LGBM with Loop Feature Engineering」に特徴量を辞書型で保持し,テストデータのDataFrameの行に対してfor文を回し,特徴量を追加していくといった手法でした.これを真似ると推論時間は大幅に改善されました.このように悩んだことがあっても多くのKagglerが有益な情報を公開してくれていて学びながら取り組んで行けることもKaggleの魅力だと実感しました.(補足:Pandasのleft joinを357倍高速化したというNotebookも公開されていてこちらも参考になりそうですがコンペ中は追いきれませんでした)