সিএনএন মধ্যে ফিরে প্রচার


16

আমার কাছে নিম্নলিখিত সিএনএন রয়েছে:

নেটওয়ার্ক লেআর

  1. আমি 5x5 আকারের একটি ইনপুট চিত্র দিয়ে শুরু করি
  2. তারপরে আমি 2x2 কার্নেল এবং স্ট্রাইড = 1 ব্যবহার করে কনভলিউশনটি প্রয়োগ করি যা 4x4 আকারের বৈশিষ্ট্যযুক্ত মানচিত্র তৈরি করে।
  3. তারপরে আমি স্ট্রাইড = 2 দিয়ে 2x2 সর্বাধিক-পুলিং প্রয়োগ করি যা বৈশিষ্ট্যের মানচিত্রটিকে 2x2 আকারে হ্রাস করে।
  4. তারপরে আমি লজিস্টিক সিগময়েড প্রয়োগ করি।
  5. তারপরে একটি সম্পূর্ণরূপে 2 টি নিউরনের সাথে সংযুক্ত স্তর।
  6. এবং একটি আউটপুট স্তর।

সরলতার জন্য, ধরে নেওয়া যাক আমি ইতিমধ্যে ফরওয়ার্ড পাসটি সম্পন্ন করেছি এবং δH1 = 0.25 এবং δH2 = -0.15 গণনা করেছি

সুতরাং সম্পূর্ণ ফরোয়ার্ড পাস এবং আংশিকভাবে সম্পূর্ণ পশ্চাদপটে পাসের পরে আমার নেটওয়ার্কটি দেখতে এই রকম দেখাচ্ছে:

ফরোয়ার্ড পাস পরে নেটওয়ার্ক

তারপরে আমি অ-রৈখিক স্তর (লজিস্টিক সিগময়েড) জন্য ডেল্টাস গণনা করি:

δ11=(0.250.61+0.150.02)0.58(10.58)=0.0364182δ12=(0.250.82+0.150.50)0.57(10.57)=0.068628δ21=(0.250.96+0.150.23)0.65(10.65)=0.04675125δ22=(0.251.00+0.150.17)0.55(10.55)=0.06818625

তারপরে, আমি ডেল্টাসকে 4x4 লেয়ারে প্রচার করি এবং সমস্ত মান সেট করে যা সর্বাধিক-পুলিং দ্বারা ফিল্টার করা হয়েছিল 0 এবং গ্রেডিয়েন্ট মানচিত্রটি এর মতো দেখায়:

এখানে চিত্র বর্ণনা লিখুন

আমি কীভাবে সেখান থেকে কার্নেল ওজন আপডেট করব? এবং যদি আমার নেটওয়ার্কে 5x5 এর আগে আরও কনভোলজিনাল স্তর থাকে, তবে এটির কার্নেল ওজন আপডেট করার জন্য আমার কোন মানগুলি ব্যবহার করা উচিত? এবং সামগ্রিকভাবে, আমার গণনা কি সঠিক?


আপনাকে কী বিভ্রান্ত করছে তা দয়া করে পরিষ্কার করুন। আপনি কীভাবে সর্বাধিকের ডেরাইভেটিভ করবেন তা ইতিমধ্যে জানেন (মানটি যেখানে সর্বাধিক যেখানে বাদে সবকিছুই শূন্য)। সুতরাং, আসুন সর্বাধিক-পুলিং ভুলে যাই। আপনার সমস্যাটি কি সমঝোতায় রয়েছে? প্রতিটি কনভলিউশন প্যাচের নিজস্ব ডেরাইভেটিভ থাকবে, এটি একটি ধীর গণনামূলক প্রক্রিয়া।
রিকার্ডো ক্রুজ

সবচেয়ে ভাল উত্স হ'ল গভীর শিক্ষার বই - অবশ্যই স্বীকার করা সহজ নয় :)। প্রথম কনভলিউশনটি প্যাচগুলিতে চিত্রটি বিভাজন এবং তারপরে একটি সাধারণ নিউরাল নেটওয়ার্ক প্রয়োগ করার মতো একই জিনিস, যেখানে প্রতিটি পিক্সেল আপনার ওজন ব্যবহার করে "ফিল্টার" সংখ্যার সাথে সংযুক্ত থাকে।
রিকার্ডো ক্রুজ

1
আপনার প্রশ্নটি কী কীভাবে ব্যারপ্র্যাপগেশন ব্যবহার করে কার্নেলের ওজন সামঞ্জস্য করা হয়?
JahKnows

@ জাহকনোস .. এবং প্রশ্নের মধ্যে উদাহরণস্বরূপ উদাহরণস্বরূপ গ্রেডিয়েন্টগুলি কীভাবে কনভোলজিকাল লেয়ারের জন্য গণনা করা হয়।
কোরিয়াকিন্প

আপনার কনভোলশনাল স্তরগুলির সাথে কি কোনও অ্যাক্টিভেশন ফাংশন যুক্ত আছে?
JahKnows

উত্তর:


10

একটি সমঝোতা একটি ওজন ভাগ করে নেওয়ার নীতি নিয়োগ করে যা গণিতকে উল্লেখযোগ্যভাবে জটিল করে তুলবে তবে আসুন আমরা আগাছা পেরোনোর ​​চেষ্টা করি। আমি আমার উত্স থেকে বেশিরভাগ ব্যাখ্যা এই উত্স থেকে আঁকছি ।


ফরোয়ার্ড পাস

আপনি পর্যবেক্ষণ হিসাবে কনভ্যুশনাল স্তর এর এগিয়ে পাস হিসাবে প্রকাশ করা যেতে পারে

xi,jl=mnwm,nloi+m,j+nl1+bi,jl

যেখানে আমাদের ক্ষেত্রে এবং কে 2 আকার, সেখানে আমাদের ক্ষেত্রে । সুতরাং এটি মতো আপনার খুঁজে পাওয়া আউটপুটটির জন্য বলে । এবং কার্নেলের মাত্রা জুড়ে পুনরাবৃত্তি করুন।k1k2k1=k2=2x0,0=0.25mn

Backpropagation

ধরে নিচ্ছি আপনি সংজ্ঞা হিসাবে গড় স্কোয়ার্ড ত্রুটি (এমএসই) ব্যবহার করছেন

E=12p(tpyp)2 ,

আমরা নির্ধারণ করতে চাই

Ewm,nlওজন আপডেট করার জন্য । এবং হ'ল কার্নেল ম্যাট্রিক্সের সূচকগুলি এর পুনরাবৃত্তকারীগুলির সাথে বিভ্রান্ত হবে না। উদাহরণস্বরূপ in আমাদের উদাহরণে। আমরা এটিও দেখতে পারি যে কোনও ইনপুট চিত্রের জন্য এক্স বিভ্রান্তিকর স্তরটির পরে আউটপুট মাত্রা হবেmnw0,01=0.13HK

(Hk1+1) এক্স ।(Wk2+1)

আমাদের ক্ষেত্রে এটি x যেমন আপনি দেখিয়েছেন। আসুন ত্রুটি শব্দটি গণনা করা যাক। আউটপুট স্পেসে পাওয়া প্রতিটি শব্দ কার্নেলের ওজন দ্বারা প্রভাবিত হয়েছে। কার্নেলের ওজন আউটপুট এবং প্রতিটি একক আউটপুট অবদান রাখে । সুতরাং আমরা মোট ত্রুটি হিসাবে তার অবদান প্রকাশ44w0,01=0.13x0,01=0.25

Ewm,nl=i=0Hk1j=0Wk2Exi,jlxi,jlwm,nl

এটি পুরো আউটপুট স্পেস জুড়ে পুনরাবৃত্তি করে, আউটপুট অবদান রাখছে এমন ত্রুটিটি নির্ধারণ করে এবং তারপরে আউটপুটটির ক্ষেত্রে কর্নেল ওজনের অবদানের উপাদানটি নির্ধারণ করে।

আসুন সরলতার জন্য এবং ব্যাকপ্রোপাগেটেড ত্রুটির উপর নজর রাখার জন্য আউটপুট স্পেস ডেল্টা থেকে ত্রুটিটিকে অবদানের জন্য ডাকি,

Exi,jl=δi,jl

ওজন থেকে অবদান

সমঝোতা হিসাবে সংজ্ঞায়িত করা হয়

xi,jl=mnwm,nloi+m,j+nl1+bi,jl ,

এভাবে

xi,jlwm,nl=wm,nl(mnwm,nloi+m,j+nl1+bi,jl)

সমষ্টিটি প্রসারিত করে আমরা পর্যবেক্ষণ করে শেষ করি যে ডারাইভেটিভ কেবল এবং শূন্য হবে । আমরা তারপর পেতেm=mn=n

xi,jlwm,nl=oi+m,j+nl1

তারপরে আমাদের ত্রুটি শর্তে ফিরে আসুন

Ewm,nl=i=0Hk1j=0Wk2δi,jloi+m,j+nl1

স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত

w(t+1)=w(t)ηEwm,nl

আসুন তাদের কয়েকটি গণনা করা যাক

import numpy as np
from scipy import signal
o = np.array([(0.51, 0.9, 0.88, 0.84, 0.05), 
              (0.4, 0.62, 0.22, 0.59, 0.1), 
              (0.11, 0.2, 0.74, 0.33, 0.14), 
              (0.47, 0.01, 0.85, 0.7, 0.09),
              (0.76, 0.19, 0.72, 0.17, 0.57)])
d = np.array([(0, 0, 0.0686, 0), 
              (0, 0.0364, 0, 0), 
              (0, 0.0467, 0, 0), 
              (0, 0, 0, -0.0681)])

gradient = signal.convolve2d(np.rot90(np.rot90(d)), o, 'valid')

অ্যারে ([[0.044606, 0.094061], [0.011262, 0.068288]])

এখন আপনি জায়গায় SGD সমীকরণ মধ্যে যে লাগাতে পারেন ।Ew


অনুপস্থিতিতে ত্রুটি আছে কিনা আমাকে দয়া করে জানান।


আপডেট: সংশোধিত কোড


কিভাবে মত ক্ষেত্রে আমার ফিল্টার একাধিক চ্যানেল আছে দেখবে? Ewm,nl
koryakinp

1
gradient = signal.convolve2d(np.rot90(np.rot90(d)), o, 'valid')
সান মৌমাছি

আমি এই উত্তরটি পর্যালোচনা করার পরামর্শ চাই। বিশেষত, অজগর প্রদত্ত কোডটি চেক করা যেতে পারে
দুলোরেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.