SIMPLS: an alternative approach to partial least squares regression
SIMPLSは、NIPALSとおなじく部分的最小二乗法(PLS)である。 NIPALSでは、潜在変数が、デフレーションされた説明変数の線形結合になる。 他方、SIMPLSの潜在変数は、中心化された説明変数の線形結合で表現できる。 そのため、NIPALSよりもSIMPLSの潜在変数の方が説明変数との関係を解釈しやすい。
SIMPLSは、NIPALSとおなじく部分的最小二乗法(PLS)である。 NIPALSでは、潜在変数が、デフレーションされた説明変数の線形結合になる。 他方、SIMPLSの潜在変数は、中心化された説明変数の線形結合で表現できる。 そのため、NIPALSよりもSIMPLSの潜在変数の方が説明変数との関係を解釈しやすい。
Ward Cunninghamが証券ポートフォリオ管理システムWyCASH+を開発したときの事例報告で、92年のオブジェクト指向の国際会議OOPSLAで発表された。 この発表が技術的負債の典拠であるが、文中には技術的(technical)はなく単に負債(debt)と書かれている。 アジャイルソフトウェア開発宣言が発表された2001年以前に、ウォーターフォールよりもインクリメンタルな開発のほうが最短で適当な品質のソフトウェアを構築できると主張した。 しかし、インクリメンタルな開発では、全ての知識が十分に揃っていない状態でコーディングするため、システムの部分的な修正を重ねる必要がある。 そして、オブジェクト指向言語のメッセージパッシングによって漸進的な修正が可能になるというのが発表の骨子である。 負債で会社の成長を早められるように、コードをリリースすることで後に修正する必要があるかもしれないが、よい設計を早く知ることができるため、Cunninghamは最初にリリースするコードを負債と形容した。 負債と対比されているのはプログラミングの前に設計を熟考することであり、こちらが前払い、全額払いと表現されている。
重回帰分析は、説明変数の行列がフルランクでないとき、多重共線性により出力が不安定になる。 そのため、説明変数の数を減らし、説明変数間に相関関係がないようにする必要がある。 PLS(部分的最小二乗法)は、入力変数の線形結合で表わせる潜在変数を求め、潜在変数の線形結合で目的変数を表す。 説明変数の数より少ない数の潜在変数を求めることで、説明変数間の相関関係をとりのぞく。
ルービンの因果モデルによる統計的因果推定では、群\(U\)の要素を\(u\), 処置を\(t\), \(c\), \(Y\)を潜在的結果変数とすると、\(u\)に対して処置\(c\)を適用するときの処置\(t\)の因果効果を、\(T = Y_t(u) - Y_c(u)\)とみなす。 たとえば、\(u\)を人、\(t\), \(c\)を運動をする、しない、\(Y\)をコレステロールの値とすれば、運動とコレステロール値の関係になる。 おなじ\(u\)に対して\(Y_t(u)\)と\(Y_c(u)\)を両方観測することはできない。 因果効果は、観測するものではなく、推定するものになる。
TDDがコードに及ぼす影響を調べた先行研究はあるが、研究手法、被検者、プログラミング環境などの実験条件は様々、結論は違い、明確な結論はない。 表題の論文は、個別のTDDの実験結果の精度と汎化性を上げるために、実験結果に影響するとみられる実験条件をかえ、TDDとITL(iterative test-last development)を比較する12の実験を実施した。 被検者は4大学と企業12社で、5つのトイタスクを解かせ、通ったテストオラクルの割合で実装の品質を評価した。 結果、TDD初心者の被検者はITLによる実装のほうが品質が高かった。 エディタや言語、ITLとTDDの実験の被験順序、TDDとITLをどちらを先に学んだかは品質に影響しなかった。 学生よりも企業に所属するプロフェッショナルのほうがTDD、ITL両方で品質がよかったが、TDDで実装したときの品質の下がり幅は学生の下がり幅の2倍に及んだ。
対照学習は、意味の近い要素同士を近くに、異なる要素を遠くに配置する分散表現を獲得する。 SimCSEは、文の分散表現のための対照学習であり、教師なしと教師ありの2つの学習方法を提供する。 教師なし学習は、Dropout層を通したサンプルが近くに配置されるように、Dropout層の出力2つからなるペアを教師データにする。 教師あり学習は、自然言語推論(含意関係認識)の教師データをつかい、前提と含意の分散表現が近くになるように学習する。
Gradient Boostingは、反復的に、モデルの予測と正解の残差に弱識別器をあてはめ、弱識別器をモデルに追加する。 Stochastic Gradient Boostingは、弱識別器の学習に非復元抽出したデータの部分集合をつかい、精度と学習速度を向上する。
LightGBMは、GBDTを高速化したアルゴリズムであり、XGBoostよりも必要な計算時間と消費メモリが少ない。 GBDTの処理時間のボトルネックは決定木の分岐を決めるところである。 その前処理で特徴の値をソートする場合は、ソートがボトルネックになる。 勾配の小さいサンプルを除外することでデータを減らし、また、同時に0でない値にならない排他的な特徴をマージすることで特徴の種類を減らし、ソートを高速化した。
ADAMはAdaptive moment estimationに由来し、名前のとおり、推定した1, 2次のモーメントによる学習率最適化のアルゴリズムである。 勾配が疎なときに有効なAdaGradの利点と、目的関数が時間とともに変化してもよいRMSPropの利点をそなえる。 一次や二次のモーメントを、指数関数的に加重を減少させる移動平均で推定する。 ただし、モーメントの初期値を0にすると最初のうちはモーメントの推定値が0に偏ってしまう。 そこで、反復回数がすくないほど推定値を大きくなるよう補正する。
XGBoostは、キャッシュやシャーディングによる高速な勾配ブースティングのライブラリであり、スパースなデータでも高速に学習できる。 情報利得が大きくなるにノードから枝をのばすときは、ノードにあるサンプルで分岐の条件を決定する。 このとき、分岐条件の特徴が欠損するサンプルを左右どちらかに無条件にふり分けると利得が大きくなるかを計算する。 これにより、欠損のないサンプル数の線形オーダまで計算量を削減する。