読書ノート:pythonのニューラルネットワークプログラミング[英語]タリク・ラシッド(タリク・ラシッド)

読書ノート:pythonのニューラルネットワークプログラミング[英語]タリク・ラシッド(タリク・ラシッド)

ニューラルネットワークプライマーの2020年2月読書。英語では忠実なポットのソースコードを求めるメッセージメールボックスを残してください。

ニューラルネットワークプログラミング[英語]タリク・ラシッド(タリク・ラシッド)のpython
この本を読む本:
この本構造は、完全にニューラルネットワークをもとにしていますエントリは非常に明確です。2つの章を読む前に、それの本質を読み終えました。第一章では基本であり、基本的には、理解のこの第二章を理解することができ、コードを読むことが非常に重要です。第二章では、「手書き認識のデジタル」画像認識問題の問題の核心であり、問題を解決するためにニューラルネットワークを訓練します。対象の開始前に、そこjupyterノートチュートリアル。コードの各部分については、この主題が書かれているどのように我々は非常に詳細に説明します後。自分が再びjupyterノートブックの内部に理解するための本を続いノック。(コピー&ペーストしていない、自分をノック推奨)

本報告書自体からの抜粋:

ニューラルネットワークの最初の章では、作品
の予測を
マシンは、単純な入力を受け、私たちは、予測、それを呼び出しますので、出力を予測するため、作る場合。モデルとして線形関数を用いて、勾配値をパラメータとして調整することができます。これらのモデルを改善するための良い方法は、モデル誤差にオフセット調整パラメータを与えるために、モデルと知られている実際の例との比較に基づいています。
第二に、分類がされた
境界線の傾きを調整するための異なるもの、すなわちA線形分類器訓練の線形性を分離するために使用される、それは正しく分類することができます。線形関数を設定:YはAX =、Aは勾配パラメータです。次のようにコンピュータアルゴリズムである:
(1)ランダム値誤差値Eは所望の目標であるように-実際の出力値。
(2)Aに誤差値Eを見つける変化量との関係
現在の誤差値に基づいて、(3)調整パラメータ。
調整係数Lを追加し、学習率と呼ばれます。学習率を使用すると、率を改善するために調整するので、単一の訓練サンプルが支配全体の学習処理できないことができます。第三に、ニューラルネットワーク
(1)フィードフォワード信号
ネットワークの訓練段階において、データは、入力層、出力層から送信されました。
•Wはinput_hidden隠され= X-I
O =隠されたシグモイド(X-隠された)
X-hidden_​​output•WはO =出力隠さ
Oシグモイド出力=(X-出力)
ニューラルネットワークの訓練サンプルの出力値の(2)エラーバックプロパゲーション値は、誤差が計算されます。ネットワークへの出力バックからのエラー伝播。私たちは、それによって、ニューラルネットワークの出力値を改善し、重みを更新、ニューラルネットワーク自体を調整するために、このエラーを使用する必要があります。
(3)重みを更新します
エラーニューラルネットワークは、内部リンクの重み関数です。改善されたニューラルネットワーク、重みを変更することで、この誤差を低減することを意味します。勾配降下誤差関数によって、重みが反復的に改善し、小さなステップを取ります。

第II章は、あなたの神経回路網の訓練
I.背景とデータ収集タスク
1概要:デジタル手書き文字認識、画像認識は、それ自体の問題があります。示されるように、例えば、手書きのデジタル写真を与え、ニューラルネットワークは、0から9までを表す必要数を決定します。
2.データセット:MNIST手書き数字データベース。この実験では、10例のトレーニングデータ100ケース、テストデータをデータセットの小さなサブセットを使用します。データ形式はcsvファイルです。下図は、テストセットMNISTテキストエディタの部分にロードされます。最初の値はタグである、すなわち、実際の書き込みは、「7」や「9」のように、デジタル表現を所望しました カンマで区切られ、続いて値が、手書きの数字の画素値です。画素アレイ28のサイズは28で乗算され、それはラベル値784の後です。
3.実験環境:python3.7
第二に、ネットワーク構造
ニューラルネットワークの入力層、隠れ層及び出力層に3層。ここで、全ての画素を表す28 * 28 = 784のノードの入力層、出力層は、10ノード、10項0-9の状態を表します。隠れ層のノードを選択することは、入力層と出力層、仮100、その後の調整可能との間に介在しています。
第三に、実験手順およびコード
のネットワークの枠組みの構築が1
__init __(自己、inputnodes、hiddennodes備えるニューラルネットワーククラスの初期化機能を構築し 、outputnodes、learningrate)、 トレーニング機能列車(自己、inputs_list、targets_list)およびクエリ機能クエリ(自己、inputs_listを)
(1)初期化関数:
初期化機能は、ネットワークを初期化するために使用されます。入力ノード、隠された層の数及びノードの出力層ノードを設定するネットワーク層を初期化します。同じ時間が必要で、学習率と活性化機能を設定し、重みを初期化します。
(2)トレーニング機能:
出力結果を得るために内部トレーニング機能最初のフィードフォワード信号、演算誤差逆伝播は、重みを更新するために使用されます。
(3)クエリ機能:
クエリ機能トレーニングが完了した後、試験及び問い合わせ時通話データ、内部フィードフォワード信号の一部のみネットワークの関数です。
2.ネットワークトレーニング
こうして5回の反復トレーニングを提供100のより少ないトレーニングデータ、(1)ネットワークの初期化は、(2)ネットワークのトレーニングをトレーニングデータを読み出します。
第四に、実験を
見つけることができ、ベクター内のタグの「7」位置の最大出力値は、従って、7と判定されます。このように、ネットワークの訓練の成功は、より正確な予測することができます。テスト・データ・セットとテスト、として次の訓練データとテストデータセットの選択されたセットの数、したがって60%の正解率は、データセットの数の増加は、パフォーマンスが向上する場合ので。

このブログは、オリジナル作品である指針を歓迎し、再現し、ソースを示すようにしてくださいこの記事へのリンクを添付し、あなたに感謝してください!

公開された20元の記事 ウォンの賞賛1 ビュー200

おすすめ

転載: blog.csdn.net/weixin_43973433/article/details/104888185