মেট্রিক্সের গুণনের জায়গায় কনভ্যুশনাল নিউরাল নেটওয়ার্কগুলি ঠিক কীভাবে কনভ্যুলশনটি ব্যবহার করে?


13

আমি গভীর শিক্ষার উপর যোশুয়া বেনজিওর বইটি পড়ছিলাম এবং এটি 224 পৃষ্ঠায় বলেছে:

কনভ্যোলিউশনাল নেটওয়ার্কগুলি কেবল নিউরাল নেটওয়ার্ক যা তাদের ম্যাট্রিক্সের গুনের জায়গায় কমপক্ষে একটি স্তরগুলিতে কনভোলশন ব্যবহার করে।

তবে, গাণিতিকভাবে সুনির্দিষ্ট অর্থে কীভাবে "কনভলিউশনের মাধ্যমে ম্যাট্রিক্স গুণকে প্রতিস্থাপন করা যায়" সে সম্পর্কে আমি 100% নিশ্চিত ছিলাম না।

আমাকে কী আগ্রহী তা 1 ডি ইনপুট ভেক্টরগুলির জন্য এটি সংজ্ঞায়িত করছে ( ), সুতরাং আমার কাছে চিত্র হিসাবে ইনপুট থাকবে না এবং 2 ডি-তে সংশোধন এড়াতে চেষ্টা করব না।xRd

সুতরাং উদাহরণস্বরূপ, "সাধারণ" স্নায়বিক নেটওয়ার্কগুলিতে, অ্যান্ড্রু এনগের নোটগুলির মতো ক্রিয়াকলাপ এবং ফিড ওয়ার্ডের ধরণটি সংক্ষেপে প্রকাশ করা যেতে পারে:

f ( z ( l + 1 ) ) = a ( l + 1 )

W(l)a(l)=z(l+1)
f(z(l+1))=a(l+1)

যেখানে the ভ্যাক্টরটি অ-লিনিয়ারিটি পাশ করার আগে এটি গণনা করা হয় । অ-লিনিয়ারিটি ভেক্টর on এবং on এ পেরো প্রবেশের কাজ করে যা প্রশ্নযুক্ত স্তরটির জন্য লুকানো ইউনিটের আউটপুট / সক্রিয়করণ। f z ( l ) a ( l + 1 )z(l)fz(l)a(l+1)

এই গণনাটি আমার কাছে স্পষ্ট কারণ ম্যাট্রিক্সের গুণটি আমার জন্য স্পষ্টভাবে সংজ্ঞায়িত হয়েছে তবে যাইহোক, কেবল ম্যাট্রিক্সের গুণকে প্রতিস্থাপনের দ্বারা প্রতিস্থাপন করা আমার কাছে অস্পষ্ট বলে মনে হয়। অর্থাত

f ( z ( l + 1 ) ) = a ( l + 1 )

W(l)a(l)=z(l+1)
f(z(l+1))=a(l+1)

আমি নিশ্চিত করতে চাই যে আমি উপরের সমীকরণটি গণিতের সাথে সঠিকভাবে বুঝতে পেরেছি।

আমার প্রথম সমস্যাটি কেবল সমঝোতার সাথে ম্যাট্রিক্সের গুণকে প্রতিস্থাপন করে তা হ'ল সাধারণত, কেউ ডট পণ্যের সাথে of এর একটি সারি চিহ্নিত করে । তাই এক পরিষ্কারভাবে জানেন কিভাবে পুরো একটি ভেক্টর থেকে ওজন এবং যে মানচিত্রগুলি সম্পর্কিত যেমন দ্বারা নির্দেশিত মাত্রা এর । যাইহোক, যখন convolutions পর এক প্রতিস্থাপন দেখ, এটাই আমার কাছে যা এন্ট্রি যা সারি বা ওজন অনুরূপ স্পষ্ট না । এটি আমার কাছে এমনকি স্পষ্ট নয় যে ওজনকে ম্যাট্রিক্স হিসাবে বাস্তবে আর উপস্থাপন করা বোধগম্য হয় (আমি পরে এই বিষয়টি ব্যাখ্যা করার জন্য একটি উদাহরণ দেব) a ( l ) z ( l + 1 ) W ( l ) a ( l )W(l)a(l)z(l+1)W(l)a(l)

ইনপুট এবং আউটপুট সমস্ত 1 ডি-তে রয়েছে এমন ক্ষেত্রে, কেউ কি কেবল তার সংজ্ঞা অনুসারে কনভলিউশনটি গণনা করে তারপরে এককতার মধ্য দিয়ে যায়?

উদাহরণস্বরূপ যদি আমাদের কাছে নিম্নলিখিত ভেক্টরটি ইনপুট হিসাবে থাকে:

x=[1,2,3,4]

এবং আমাদের নিম্নলিখিত ওজনগুলি ছিল (সম্ভবত আমরা এটি ব্যাকপ্রপ দিয়ে শিখেছি):

W=[5,6,7]

তাহলে বোঝাটি হ'ল:

xW=[5,16,34,52,45,28]

এটির মাধ্যমে কেবল অ-রৈখিকতা অতিক্রম করা এবং ফলাফলটিকে লুকানো স্তর / উপস্থাপন হিসাবে গণ্য করা ( মুহুর্তের জন্য কোনও পুলিং অনুমান করা ) কী সঠিক হবে? যেমন নীচে:

f(xW)=f([5,16,34,52,45,28])=[f(5),f(16),f(34),f(52),f(45),f(28)])

(স্ট্যানফোর্ড ইউডিএলএফ টিউটোরিয়াল আমি মনে করি যে প্রান্তগুলি 0 এর সাথে কোন কারণে কনভলভ হয় এমন প্রান্তগুলি ছাঁটাচ্ছে, আমাদের কি এটি ছাঁটাতে হবে?)

এটি কি এইভাবে কাজ করা উচিত? কমপক্ষে 1 ডি ইনপুট ভেক্টরের জন্য? কি আর ভেক্টর নয়?W

এমনকি আমি মনে করি যে এটির মতো মনে হচ্ছে এটির একটি নিউরাল নেটওয়ার্কও আঁকলাম:

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

উত্তর:


3

আমার কাছে মনে হচ্ছে আপনি সঠিক পথে আছেন তবে আমি স্পষ্ট করতে সাহায্য করতে পারি।

একক আউটপুট

আসুন ইনপুট ইউনিট এবং 1 আউটপুট সহ একটি traditionalতিহ্যবাহী নিউরাল নেটওয়ার্ক স্তরটি কল্পনা করুন (আসুন আমরা কোনও পক্ষপাতিত্বও ধরে নিই না)। এই স্তরের ওয়েটসের একটি ভেক্টর রয়েছে যা বিভিন্ন পদ্ধতি (ব্যাকপ্রপ, জেনেটিক অ্যালগোরিদম ইত্যাদি) ব্যবহার করে শেখা যায়, তবে আমরা শিখনকে উপেক্ষা করব এবং কেবলমাত্র প্রচারের দিকে মনোনিবেশ করব।nwRn

স্তর একটি ইনপুট নেয় এবং একটি অ্যাক্টিভেশন তা মানচিত্র এর ডট পণ্য কম্পিউটিং দ্বারা সঙ্গে এবং তারপর একটি nonlinearity প্রয়োগের :xRnaRxwσ

a=σ(xw)

এখানে, উপাদান সংশ্লিষ্ট উপাদানের ওজন কত উল্লেখ আউটপুট ইউনিট সামগ্রিক অ্যাক্টিভেশন গনা। আপনি এমনকি এটি "সমঝোতার" মতো ভাবতে পারেন যেখানে ইনপুট সিগন্যাল ( ) ফিল্টার ( ) এর সমান দৈর্ঘ্য ।wxxw

একটি convolutional সেটিং ইন, আরও মান তুলনায় ; এখন অনুমান করা আমাদের ইনপুট জন্য । আমরা ডট পণ্য কম্পিউটিং এই সেটিং আউটপুট ইউনিট সক্রিয়তার গনা করতে এর সংলগ্ন সাব-সেট নির্বাচন সঙ্গে :xwxRmm>nwx

a1=σ(x1:nw)a2=σ(x2:n+1w)a3=σ(x3:n+2w)amn+1=σ(xmn+1:mw)

(এখানে আমি ক্রস কোরিলেশন এবং সংবর্তন যে অনেক স্নায়ুর জাল লেখক করা মধ্যে একই বিরক্তিকর বিভ্রান্তির পুনরাবৃত্তি করছি, যদি আমরা এই সঠিক convolutions করতে হত, তাহলে আমরা উপাদান টুসকি চাই আমিও একটি "বৈধ" অভিমানী করছি। কনভোলশন যা কেবলমাত্র গণিত উপাদানগুলি ধরে রাখে যেখানে ইনপুট সিগন্যাল এবং ফিল্টার সম্পূর্ণরূপে ওভারল্যাপ হয়, অর্থাত্ কোনও প্যাডিং ছাড়াই))w

আপনি ইতিমধ্যে এটি আপনার প্রশ্নের মধ্যে ইতিমধ্যে রেখেছেন তবে আমি বিন্দুতে বিন্দু পণ্য ব্যবহার করে ভ্যানিলা নিউরাল নেটওয়ার্ক স্তরগুলির সাথে সংযোগটি চালিয়ে যাওয়ার চেষ্টা করছি। ভ্যানিলা নেটওয়ার্ক স্তরগুলির সাথে মূল পার্থক্যটি হ'ল যদি ইনপুট ভেক্টর ওজন ভেক্টরের চেয়ে দীর্ঘ হয় তবে কনভলিউশন নেটওয়ার্ক স্তরটির আউটপুটটিকে একটি ভেক্টরে পরিণত করে - কনভ্যুশনাল নেটওয়ার্কগুলিতে, এটি সমস্তভাবে নীচে ভেক্টর থাকে! এই আউটপুট ভেক্টরটিকে এই স্তরের আউটপুট ইউনিটের জন্য "বৈশিষ্ট্য মানচিত্র" বলা হয়।

একাধিক আউটপুট

ঠিক আছে, সুতরাং কল্পনা করুন যে আমরা আমাদের নেটওয়ার্ক স্তরটিতে একটি নতুন আউটপুট যুক্ত করব, যাতে এটিতে ইনপুট এবং 2 আউটপুট থাকে। একটি ভেক্টর থাকবে প্রথম আউটপুট, এবং একটি ভেক্টর জন্য দ্বিতীয় আউটপুট জন্য। (আমি স্তর আউটপুট বোঝাতে সুপারস্ক্রিপ্ট ব্যবহার করছি।)nw1Rnw2Rn

ভ্যানিলা স্তরটির জন্য এগুলি সাধারণত ম্যাট্রিক্স একসাথে সজ্জিত করা হয় যেখানে পৃথক ওজন ভেক্টরগুলি ম্যাট্রিক্সের কলাম হয়। তারপরে এই স্তরটির আউটপুট গণনা করার সময়, আমরা গণনা করি বা স্বল্প ম্যাট্রিক্স স্বরলিপিতে, যেখানে ননলাইনারিটি মৌলিকভাবে প্রয়োগ করা হয়।W=[w1w2]

a1=σ(xw1)a2=σ(xw2)
a=[a1a2]=σ(xW)

কনভ্যুশনাল ক্ষেত্রে, আমাদের স্তরটির ফলাফলগুলি এখনও একই প্যারামিটার ভেক্টরের সাথে এবং । যেমন একক আউটপুট ক্ষেত্রে, স্তর প্রতিটি স্তর আউটপুট জন্য ভেক্টর-মূল্যবান আউটপুট উত্পন্ন, সুতরাং এবং (আবার "বৈধ" কনভোলিউশন ধরে ধরে)। এই ফিল্টার মানচিত্রগুলি, প্রতিটি স্তর আউটপুট জন্য একটি, সাধারণত ম্যাট্রিক্স একত্রে স্ট্যাক করা হয় ।w 2 a 1 = [ a 1 1 a 1 2a 1 m - n + 1 ] a 2 = [ a 2 1 a 2 2a 2 m - n + 1 ] A = [ a 1 a 2 ]w1w2a1=[a11a21amn+11]a2=[a12a22amn+12]A=[a1a2]

আপনি যদি এটির কথা চিন্তা করেন তবে কনভ্যুশনাল কেসের ইনপুটটিকে ম্যাট্রিক্স হিসাবেও ভাবা যেতে পারে, যার মধ্যে একটি মাত্র কলাম ("একটি ইনপুট চ্যানেল") থাকবে। সুতরাং আমরা এই স্তরটির জন্য হিসাবে রূপান্তরটি লিখতে পারি যেখানে "কনভলিউশন" আসলে একটি ক্রস-সম্পর্ক এবং কেবল এবং এর কলামগুলির সাথে ঘটে ।এক্স ডাব্লু

A=σ(XW)
XW

এই স্বরলিপি শর্টকাটগুলি আসলে বেশ সহায়ক, কারণ স্তরটিতে আরও একটি আউটপুট যুক্ত করতে এখন এটি সহজেই দেখা যায়, আমরা কেবল একটি ওজন কলাম যুক্ত করি ।W

আশা করি এটি সহায়ক!


1

একটি কনভোলজিকাল স্তর হ'ল সম্পূর্ণ সংযুক্ত নেটওয়ার্কের একটি কঠোর উপসেট, অর্থাত্ একটি ম্যাট্রিক্স গুণ lic ফরোয়ার্ড পাসের একটি বিবর্তনীয় স্তরটি আসলে ম্যাট্রিক্সের গুণকের সমতুল্য যেখানে:

  • কিছু ওজন বাঁধা / ভাগ করা হয়
  • কিছু ওজন শূন্য হয়

পিছনের পাসে, ওজনগুলি ফরওয়ার্ড পাসের ক্ষেত্রে কতটা ওজন অবদান রেখেছে তার সাথে সামঞ্জস্য করা হবে। অর্থাত, ওজন যা শূন্য ছিল এখনও শূন্য। ওজন যা একাধিক আউটপুট জুড়ে বেঁধে দেওয়া হয়েছিল সেই সমস্ত আউটপুট (যা গ্রেডিয়েন্টগুলি একত্রে সংক্ষিপ্ত করা হয়, সেই ওজনের জন্য চূড়ান্ত গ্রেডিয়েন্ট আপডেট তৈরি করতে) থেকে গ্রেডিয়েন্ট পাবেন।


0

না, এটি কাজ করার কথা নয়। কনভোলশন অপারেশন সর্বদা ইনপুটটিকে ছোট করে তোলে (আকারের ফিল্টারগুলির জন্য> 1) আপনার উদাহরণের মতো বড় নয়।

15+26+37=38


N+n1Nn+1

সেই ওয়েবপেজে যে কনভলিউশন ব্যবহৃত হয়েছে তা গাণিতিক কনভলিউশনের সংজ্ঞা নয়।
চার্লি পার্কার 0

2
nnn1

1
আমি দেখতে পাচ্ছি, আমি মনে করি এটি এখন সার্থক হয়েছে যে আমি এটি সন্ধান করেছি। যাইহোক, একটি ছোট ভুল আছে। ইনপুটটি সর্বদা এটি ছোট করে না, আমি এখন এবং এমনকি সিএনএন-তে বিভিন্ন ধরণের কনভোলশনের বিষয়ে অবগত Y ng bengioy / dlbook । আমি সেগুলি বিস্তারিতভাবে বুঝতে পারি না তবে কমপক্ষে আমি তাদের সম্পর্কে অবগত! ধন্যবাদ ফেলবো। দৃষ্টি সম্প্রদায়টি কনভলিউশন শব্দটি ব্যবহার করা উচিত নয়, এর বিভ্রান্তিকর এবং বিরক্তিকর। যাইহোক ধন্যবাদ.
চার্লি পার্কার 21

2
@CharlieParker মতলব মধ্যে পরিবর্তন ফাংশন "আকার" (পূর্ণ, বৈধ, একই), মতলব শুধু "পূর্ণ" ডিফল্ট একই 3 ধরনের আছে - এ ডক্স দেখতে mathworks.com/help/matlab/ref/conv.html । কার্নেল আলোকসম্পাতের ছাড়া একটি সংবর্তন একটি ক্রস-কোরিলেশন তাই হয়, xcorr(x, y) = conv(x, fliplr(y))। এনএন সম্প্রদায় যখন তারা আসলে ক্রস-পারস্পরিক সম্পর্ক করছে তখন সমঝোতার কথা বলতে থাকে, তবে এটি বেশ অনুরূপ।
lmjohns3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.