ReadmeのHLearnには、並列バッチトレーニングにMonoid typeclassが使用されていると記載されています。私はいくつかのファイルに記載されているtrainMonoid
を見ましたが、私はこの巨大なコードベースを解読するのが難しいです。誰かが初心者に親しみやすい言葉で説明することができますか?私はそれが何らかの形で結合性の性質に関係していると思います。Monoidは並列訓練をどのように支援しますか?
答えて
this articleに記載されていますが、質問にリンクされたページにリンクされています。あなたが初心者のフレンドリーな記述をしたいので、私はあなたが記事を読んだ後に私が理解したものの非常に高いレベルの記述を与えます。これを考えの概要として考えてください。には〜の研究があります。
基本的な考え方は、同じ作業を何度も何度もやり直すのを避けるために、代数プロパティを使用することです。彼らは、単調な操作と準同型性の連想を使ってそれを行います。
考える二組A
と2つの2進演算+
と*
準同型とB
機能f: A -> B
ようf(x + y) = f(x) * f(y)
、すなわち、それは2つのセットの間の構造を保存関数のです。 その記事の場合、関数f
は、基本的に入力セットを訓練モデルにマップする関数です。
だから、アイデアはあなただけx
とy
に研修を行い、その後、組み合わせることができますT(x + y)
のようにあなたが異なる部分x
とy
に入力されたデータを分割し、代わりに全部のモデルを計算するのでできることです結果:T(x) * T(y)
。
今のところこれはあまり役に立ちません。しかしは、しばしば作業を繰り返します。たとえば、クロスバリデーションでは、k
回の間、トレーナー用の入力セットとトレーナーをテストするために使用されるデータセットにデータをサンプリングします。しかし、これは、これらのk
反復では、入力の同じ部分に対して複数回T
を実行していることを意味します。
ここでは、ドメインを部分集合に分割し、これらの部分集合に対してT
を計算し、次にクロス検証の結果を計算するだけで対応する部分集合の結果をまとめることができます。
T({1,2})
プラステストT({1,3})
プラス{2, 3}
{2, 4}
T({1,4})
プラステストでテストを{3, 4}
上:データは{1,2,3,4}
とk = 3
代わりにやっている場合 ここでわかります1
を3回雨が降った。準同型を使用してT({1})
,を計算し、結果を他の部分結果と組み合わせて最終的な訓練モデルを得ることができます。
最終結果の正確さは、演算と準同型写像の結合によって保証されます。もしk
グループに入力を分割し、並行してトレーニングを行い、その結果を、化合物:並列場合
同じ考え方を適用することができるT(x_i)
コールが完全に平行にのみあなたが持っている端部で行われるT(x_1 + x_2 + ... + x_k) = T(x_1) * T(x_2) * ... * T(x_k)
結果を合成する。
オンライントレーニングアルゴリズムについては、アイデアは、あなたが行って、オンライン1にそれを作ることができT
「バッチ」学習アルゴリズム与えられたということです:
m
が既に訓練されたモデル(一般意志である T_O(m, d) = m * T(d)
をその時点まで訓練されたモデルとなります)、d
はトレーニングに追加する新しいデータポイントです。
m = T(x)
次にm * T(d) = T(x+d)
の場合、オンラインアルゴリズムはすべてのデータポイントでバッチアルゴリズムと同じ結果を返すという同型性によるものです。
このすべてのもっと面白い(かつ複雑な)部分ははあなたが私はあなたの個人的な勉強にそれを残しておきます、このような準同型などとして訓練タスクを見ることができるかです。
- 1. JSONはどのようにWeb開発者を支援しますか?
- 2. 初めにGANはどのように訓練されていますか?
- 3. どのようにすでに訓練を受けたinceptionV4モデル
- 4. CNTKのデータ並列訓練最新のMS-MPIバージョン8.1
- 5. SqlConnectionによる支援
- 6. タイムステップデータが多すぎる時系列データのLSTMをどのように訓練しますか?
- 7. GPUはデータ並列訓練用のパラメータサーバで効率的ですか?
- 8. どのように私は訓練のステップから訓練のステップに状態を保つことができますか?
- 9. Neurolabはネットワークを再訓練します
- 10. 訓練用ニューラルネットワークのターゲットベクトルにはどのような値を設定しますか?
- 11. Pythonのast.literal_eval( 'a_string')による支援
- 12. SQLによる支援の表示
- 13. 訓練用ニューラルネットワーク
- 14. 支援が
- 15. SQLクエリ支援
- 16. SQL UNPIVOT支援
- 17. BackgroundWorkerの支援キャンセル
- 18. のPython:ニード支援
- 19. Asp.net MVCはn層ソリューションの作成を支援しますか?
- 20. matlabでサポートベクターマシンを訓練するには?
- 21. SQL ADDクエリによる支援
- 22. 単純なアルゴリズムによる支援
- 23. スイッチ変数による支援
- 24. Python正規表現による支援
- 25. Tensorflowの訓練データはどのように「バッチ」に配布されていますか?
- 26. ネットワークが訓練されているかどうかを知るには
- 27. 事前訓練されたカフェモデルのサブセットはどのように保存できますか?
- 28. データベース設計支援
- 29. プロローグリスト操作支援
- 30. MAC OSX支援技術をプログラムで有効にしますか?
良い最初の答え。 – MikeJRamsey56