ডিপ নিউরাল নেটওয়ার্ক - আরএলইউ সহ ব্যাকপ্রোগেশন


17

আরএলইউর সাথে ফিরে প্রচার পেতে আমার কিছুটা সমস্যা হচ্ছে, এবং আমি কিছু কাজ করেছিলাম, তবে আমি সঠিক পথে রয়েছি কিনা তা নিশ্চিত নই।

ব্যয় কার্যকারিতা: যেখানে হল আসল মান এবং একটি পূর্বাভাসকৃত মান। সর্বদা > 0 ধরেও নিন ।12(yy^)2 Y এক্সyy^x


1 স্তর রিলু, যেখানে প্রথম স্তরের ওজনw1

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

dCdw1=dCdRdRdw1

dCw1=(yReLU(w1x))(x)


2 লেয়ার রিলু, যেখানে প্রথম স্তরের ওজন এবং দ্বিতীয় স্তরটি এবং আমি প্রথম স্তরটি আপডেট করতে চেয়েছিলামw2w1w2

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

dCdw2=dCdRdRdw2

dCw2=(yReLU(w1ReLU(w2x))(w1x)

যেহেতুReLU(w1ReLU(w2x))=w1w2x


3 স্তর রিলু, যেখানে প্রথম স্তরের ওজন , দ্বিতীয় স্তর এবং তৃতীয় স্তরডাব্লু 2 ডাব্লু 1w3w2w1

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

dCdw3=dCdRdRdw3

dCw3=(yReLU(w1ReLU(w2(ReLU(w3)))(w1w2x)

যেহেতুReLU(w1ReLU(w2(ReLU(w3))=w1w2w3x

যেহেতু চেইন নিয়ম শুধুমাত্র 2 ডেরাইভেটিভস, একটি সিগমা তুলনায় যা যতদিন হতে পারে সঙ্গে স্থায়ী হয় স্তর সংখ্যা।n


বলুন যে আমি সমস্ত 3 স্তর ওজন আপডেট করতে চেয়েছিলাম, যেখানে তৃতীয় স্তর, 3 দ্বিতীয় স্তর, তৃতীয় স্তরw1w2w1

সিW1=(Y-আরএলইউ(W1এক্স))(এক্স)

সিW2=(Y-আরএলইউ(W1*আরএলইউ(W2এক্স))(W1এক্স)

সিW3=(Y-আরএলইউ(W1*আরএলইউ(W2(*আরএলইউ(W3)))(W1W2এক্স)

যদি এই ডেরাইভেশনটি সঠিক হয়, তবে কীভাবে এটি বিলুপ্ত হবে না? সিগময়েডের তুলনায়, যেখানে সমীকরণে আমাদের প্রচুর পরিমাণে 0.25 দ্বারা গুণিত হয়, অন্যদিকে আরএলইউতে কোনও ধ্রুবক মানের গুণ হয় না। যদি হাজার হাজার স্তর থাকে তবে ওজনের কারণে প্রচুর গুণ হয়, তবে এই কারণটি কি বিন্যাস বা বিস্ফোরিত গ্রেডিয়েন্টের কারণ হবে না?


@ নীলস্ল্যাটার আপনার জবাবের জন্য ধন্যবাদ! আপনি কী ব্যাখ্যা করতে পারেন, আমি নিশ্চিত না যে আপনি কী বোঝাতে চেয়েছিলেন?
ব্যবহারকারী 1157751

আহ, আমি মনে করি আপনি জানেন কি আমি জানি। আচ্ছা, আমি এই প্রশ্নটি উত্থাপিত করার কারণেই আমি নিশ্চিত যে ডাইরিভিশনটি সঠিক? আমি চারপাশে অনুসন্ধান করেছিলাম এবং পুরোপুরি স্ক্র্যাচ থেকে প্রাপ্ত আরএলইউর উদাহরণ খুঁজে পাইনি?
ব্যবহারকারী 1157751

উত্তর:


15

রিলু ফাংশনের কার্যকারী সংজ্ঞা এবং এর ডেরাইভেটিভ:

ReLU(x)={0,if x<0,x,otherwise.

ddxReLU(x)={0,if x<0,1,otherwise.

ডেরাইভেটিভ ইউনিট স্টেপ ফাংশন । এটি এ এমন কোনও সমস্যা উপেক্ষা করবে যেখানে গ্রেডিয়েন্টটি কঠোরভাবে সংজ্ঞায়িত করা হয়নি, তবে এটি নিউরাল নেটওয়ার্কগুলির জন্য ব্যবহারিক উদ্বেগ নয়। উপরের সূত্রের সাথে, 0 এ ব্যাতিক্রমটি 1 হয়, তবে আপনি নিউরাল নেটওয়ার্ক কার্যক্ষমতাতে কোনও সত্যিকারের প্রভাব ছাড়াই 0, বা 0.5 হিসাবে সমানভাবে বিবেচনা করতে পারেন।x=0


সরলীকৃত নেটওয়ার্ক

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

আপনি ব্যয় ফাংশন দিয়ে রিগ্রেশন চালাচ্ছেন । আপনি কে কৃত্রিম নিউরনের আউটপুট হিসাবে সংজ্ঞায়িত করেছেন , তবে আপনি কোনও ইনপুট মান নির্ধারণ করেন নি। আমি এটি জন্য যুক্ত করব - একে , স্তর অনুসারে কিছু সূচী যুক্ত করুন এবং আমি ভেক্টরগুলির জন্য লোয়ার-কেস এবং ম্যাট্রিকের ক্ষেত্রে উপরের ক্ষেত্রে পছন্দ করি, তাই first প্রথম স্তরটির আউটপুট, its এর ইনপুটটির জন্য এবং the ওজনের জন্য নিউরনটিকে এর ইনপুট সাথে সংযুক্ত করে (বৃহত্তর নেটওয়ার্কে, এটি একটি গভীর সাথে সংযুক্ত হতে পারেC=12(yy^)2Rzr(1)z(1)W(0)xrপরিবর্তে মান)। আমি ওজন ম্যাট্রিক্সের জন্য সূচক সংখ্যাও সামঞ্জস্য করেছি - কেন এটি বৃহত্তর নেটওয়ার্কের জন্য আরও স্পষ্ট হয়ে উঠবে। এনবি আমি আপাতত প্রতিটি স্তরে নিউরনের বেশি থাকার উপেক্ষা করছি।

আপনার সাধারণ 1 স্তর, 1 নিউরন নেটওয়ার্কের দিকে তাকানো, ফিড-ফরোয়ার্ড সমীকরণগুলি হ'ল:

z(1)=W(0)x

y^=r(1)=ReLU(z(1))

মূল্য ফাংশনটির ডেরাইভেটিভ উদাহরণ উদাহরণ অনুসারে:

Cy^=Cr(1)=r(1)12(yr(1))2=12r(1)(y22yr(1)+(r(1))2)=r(1)y

প্রাক ট্রান্সফর্ম ( ) মানটিতে ব্যাক বংশবিস্তারের জন্য চেইন রুল ব্যবহার করে :z

Cz(1)=Cr(1)r(1)z(1)=(r(1)y)Step(z(1))=(ReLU(z(1))y)Step(z(1))

এই একটি অন্তর্বর্তী পর্যায় এবং একসাথে ব্যাকপ্রপ সংযোগের পদক্ষেপের সমালোচনাপূর্ণ অংশ। ডেরিভেশনগুলি প্রায়শই এই অংশটি এড়িয়ে যায় কারণ ব্যয় ফাংশন এবং আউটপুট স্তরের চতুর সংমিশ্রণের অর্থ এটি সরলিকৃত। এখানে এটি না।Cz(1)

weight ওজনের সাথে সম্মানের সাথে গ্রেডিয়েন্টটি পেতে , তবে এটি শৃঙ্খলা নিয়মের আরেকটি পুনরাবৃত্তি:W(0)

CW(0)=Cz(1)z(1)W(0)=(ReLU(z(1))y)Step(z(1))x=(ReLU(W(0)x)y)Step(W(0)x)x

। । । কারণ সুতরাংz(1)=W(0)xz(1)W(0)=x

এটি আপনার সহজ নেটওয়ার্কের সম্পূর্ণ সমাধান।

তবে একটি স্তরযুক্ত নেটওয়ার্কে আপনাকে একই যুক্তিটি পরবর্তী স্তরেও বহন করতে হবে। এছাড়াও, আপনার একটি স্তরে সাধারণত একাধিক নিউরন থাকে।


আরও সাধারণ রিলু নেটওয়ার্ক

আমরা যদি আরও জেনেরিক পদ যুক্ত করি তবে আমরা দুটি স্বেচ্ছাসেবী স্তর নিয়ে কাজ করতে পারি। তাদেরকে দ্বারা সূচিত স্তর এবং দ্বারা সূচিত স্তর কল করুন । ওজন এখন ম্যাট্রিক্স are সুতরাং আমাদের ফিড-ফরোয়ার্ড সমীকরণগুলি এর মতো দেখায়:(k)i(k+1)j

zj(k+1)=iWij(k)ri(k)

rj(k+1)=ReLU(zj(k+1))

আউটপুট স্তরে, তারপরে প্রাথমিক গ্রেডিয়েন্ট এখনও । তবে, আপাতত এটিকে উপেক্ষা করুন এবং প্রচারের পিছনে ফিরে আসার সাধারণ উপায়টি দেখুন, ধরে নিই আমরা ইতিমধ্যে found পেয়েছি - কেবল লক্ষ্য করুন যে এটি শেষ পর্যন্ত যেখানে আমরা আউটপুট ব্যয়ের ফাংশন গ্রেডিয়েন্টগুলি পাই। তারপরে 3 টি সমীকরণ রয়েছে যা আমরা চেইন বিধি অনুসরণ করে লিখতে পারি:rjoutputrjoutputyjসিCrj(k+1)

রিলু প্রয়োগের আগে প্রথমে আমাদের নিউরন ইনপুটটিতে যেতে হবে:

  1. Czj(k+1)=Crj(k+1)rj(k+1)zj(k+1)=Crj(k+1)Step(zj(k+1))

আমাদের পূর্ববর্তী স্তরগুলিতে গ্রেডিয়েন্ট প্রচার করতে হবে, যার মধ্যে প্রতিটি নিউরনে সমস্ত সংযুক্ত প্রভাব সংযুক্ত করা জড়িত:

  1. Cri(k)=jCzj(k+1)zj(k+1)ri(k)=jCzj(k+1)Wij(k)

এবং পরে এডজাস্ট করার জন্য আমাদের এটি ওয়েট ম্যাট্রিক্সের সাথে সংযুক্ত করতে হবে:

  1. CWij(k)=Czj(k+1)zj(k+1)Wij(k)=Czj(k+1)ri(k)

আপনি এগুলি আরও সমাধান করতে পারেন (পূর্ববর্তী মানগুলিতে প্রতিস্থাপন করে) বা তাদের একত্রিত করুন (প্রায়শই 1 এবং 2 ধাপগুলি স্তর দ্বারা প্রাক-রূপান্তর গ্রেডিয়েন্ট স্তর সম্পর্কিত করতে মিলিত হয়)। তবে উপরেরটি সর্বাধিক সাধারণ ফর্ম। আপনার বর্তমান অ্যাক্টিভেশন ফাংশনের যেটি ডেরাইভেটিভ ফাংশনই রয়েছে তার জন্য আপনি সমীকরণ 1 তে পদক্ষেপটি প্রতিস্থাপন করতে পারেন - এটি একমাত্র স্থান যেখানে এটি গণনাগুলিকে প্রভাবিত করে।Step(zj(k+1))


আপনার প্রশ্নগুলিতে ফিরে যান:

যদি এই ডেরাইভেশনটি সঠিক হয়, তবে কীভাবে এটি বিলুপ্ত হবে না?

আপনার ডেরাইভেশনটি সঠিক ছিল না। তবে এটি আপনার উদ্বেগগুলিকে পুরোপুরি সমাধান করে না।

সিগময়েড বনাম রিলু ব্যবহারের মধ্যে পার্থক্য যেমন সিগময়েড এর এর সাথে তুলনা করা মাত্র স্টেপ ফাংশনে , প্রতি স্তর প্রতি একবার প্রয়োগ করা হয়। আপনি উপরের জেনেরিক স্তর-দ্বারা-স্তর সমীকরণগুলি থেকে দেখতে পাচ্ছেন, স্থানান্তর ফাংশনের গ্রেডিয়েন্ট কেবলমাত্র এক জায়গায় উপস্থিত হবে। সিগময়েডের সেরা কেস ডেরাইভেটিভ 0.25 এর একটি ফ্যাক্টর যুক্ত করে (যখন ), এবং এটি এর চেয়েও খারাপ হয়ে যায় এবং দ্রুত থেকে দূরে শূন্য ডেরিভেটিভের কাছে স্যাটারুয়েট করে । আরএলইউর গ্রেডিয়েন্ট হয় 0 বা 1 হয় এবং একটি স্বাস্থ্যকর নেটওয়ার্কে ব্যাকপ্রসারণের সময় কম গ্রেডিয়েন্ট ক্ষতির জন্য প্রায়শই 1 হবে। এটি গ্যারান্টিযুক্ত নয়, তবে পরীক্ষাগুলি থেকে দেখা যায় যে গভীর নেটওয়ার্কগুলিতে রিলিউর ভাল পারফরম্যান্স রয়েছে।y(1y)x=0,y=0.5x=0

যদি হাজার হাজার স্তর থাকে তবে ওজনের কারণে প্রচুর গুণ হয়, তবে এই কারণটি কি বিন্যাস বা বিস্ফোরিত গ্রেডিয়েন্টের কারণ হবে না?

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


একটি শৃঙ্খলা নিয়ম করা হয়েছিল ? dCdy^
ব্যবহারকারী 1157751

@ ব্যবহারকারী1157751: না, tial tial tial কারণ । সি ফাংশন সি যথেষ্ট সহজ যে আপনি অবিলম্বে এর ডেরাইভেটিভ নিতে পারেন। স্কোয়ারের সম্প্রসারণ কেবলমাত্র আমি সেখানে দেখিনি - আপনি কি আমাকে এটি যুক্ত করতে চান? Cy^=Cr(1)y^=r(1)
নিল স্লেটার

কিন্তু হল আমরা চেইন নিয়ম সম্পাদন করতে যাতে আমরা উপর ব্যুৎপন্ন সম্পাদন করতে পারবেন প্রয়োজন হবে না, ? , যেখানে । সত্যিই সাধারণ প্রশ্ন জিজ্ঞাসা করার জন্য ক্ষমাপ্রার্থনা করুন, আমার গণিত দক্ষতা সম্ভবত আপনার জন্য সমস্যার কারণ হয়ে C12(yy^)2y^dCdy^=dCdUdUdy^U=yy^
উঠেছে

আপনি যদি প্রসারিত করে বিষয়গুলি আরও সহজ করতে পারেন। তারপরে বর্গক্ষেত্রটি প্রসারিত করুন।
ব্যবহারকারী 1157751

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