আমি এ পর্যন্ত যা শিখেছি তাদের এখানে একটি তালিকা তৈরি করা শুরু করব। @ মার্কোডেনা যেমন বলেছিলেন, উপকার ও বিবাদগুলি আরও কঠিন কারণ এটি বেশিরভাগ ক্ষেত্রে কেবল এই বিষয়গুলি ব্যবহার করে শেখা হয়েছে, তবে আমি কমপক্ষে তাদের ক্ষতি করতে পারে না তার একটি তালিকা রয়েছে বলে মনে করি।
প্রথমে আমি স্বরলিপিটি স্পষ্টভাবে সংজ্ঞায়িত করব যাতে কোনও বিভ্রান্তি নেই:
স্বরলিপি
এই স্বরলিপিটি নীলসেনের বই থেকে এসেছে ।
একটি ফিডফর্ডার নিউরাল নেটওয়ার্ক হ'ল নিউরনের অনেক স্তর এক সাথে সংযুক্ত। এটি একটি ইনপুট নেয়, তারপরে সেই ইনপুটটি নেটওয়ার্কের মাধ্যমে "ট্রিকলস" করে এবং নিউরাল নেটওয়ার্ক কোনও আউটপুট ভেক্টরকে ফেরত দেয়।
আরো আনুষ্ঠানিকভাবে, কল সক্রিয়তার (আউটপুট ওরফে) মধ্যে স্নায়ুর স্তর, যেখানে হয় ইনপুট ভেক্টর মধ্যে উপাদান। j t h i t h a 1 j j t haijjthitha1jjth
তারপরে আমরা নিম্নলিখিত স্তরের ইনপুটটিকে নীচের সম্পর্কের মাধ্যমে পূর্বের সাথে সম্পর্কিত করতে পারি:
aij=σ(∑k(wijk⋅ai−1k)+bij)
কোথায়
- σ হ'ল অ্যাক্টিভেশন ফাংশন,
- k t h ( i - 1 ) t h j t h i t hwijk থেকে ওজন মধ্যে স্নায়ুর স্তর মধ্যে স্নায়ুর স্তর,kth(i−1)thjthith
- j t h i t hbij হ'ল স্তরের নিউরনের পক্ষপাত , এবংjthith
- j t h i t haij স্তরটিতে নিউরনের সক্রিয়করণ মানকে উপস্থাপন করে ।jthith
কখনও কখনও আমরা লিখি উপস্থাপন করতে , অন্য কথায়, অ্যাক্টিভেশন ফাংশন প্রয়োগ করার আগে একটি নিউরনের সক্রিয়করণ মান । ∑ k ( w i j k ⋅ a i - 1 k ) + b i jzij∑k(wijk⋅ai−1k)+bij
আরও সংক্ষিপ্ত স্বরলিপি জন্য আমরা লিখতে পারেন
ai=σ(wi×ai−1+bi)
কিছু ইনপুটের জন্য ফিডফোর্ড নেটওয়ার্কের আউটপুট গণনা করতে এই সূত্রটি ব্যবহার করতে , set সেট করুন , তারপরে , গণনা করুন যেখানে স্তরগুলির সংখ্যা।a 1 = I a 2 , a 3 , … , a m mI∈Rna1=Ia2,a3,…,amm
অ্যাক্টিভেশন ফাংশন
(নীচে, আমরা পাঠযোগ্যতার জন্য পরিবর্তে লিখব )ই xexp(x)ex
পরিচয়
লিনিয়ার অ্যাক্টিভেশন ফাংশন হিসাবেও পরিচিত।
aij=σ(zij)=zij
ধাপ
aij=σ(zij)={01if zij<0if zij>0
টুকরা টুকরা করে সাজানো
কিছু এবং , এটি আমাদের "সীমা"। এই ব্যাপ্তির চেয়ে কম পরিমাণে 0 হবে এবং এই ব্যাপ্তির চেয়ে বড় কিছু হবে 1 এবং অন্য যে কোনও কিছুই এর মধ্যে রৈখিকভাবে-বিভক্ত হয়। আনুষ্ঠানিকভাবে:xminxmax
aij=σ(zij)=⎧⎩⎨⎪⎪⎪⎪0mzij+b1if zij<xminif xmin≤zij≤xmaxif zij>xmax
কোথায়
m=1xmax−xmin
এবং
b=−mxmin=1−mxmax
সিগমা
aij=σ(zij)=11+exp(−zij)
পরিপূরক লগ-লগ
aij=σ(zij)=1−exp(−exp(zij))
দ্বিমেরু
aij=σ(zij)={−1 1if zij<0if zij>0
বাইপোলার সিগময়েড
aij=σ(zij)=1−exp(−zij)1+exp(−zij)
TANH
aij=σ(zij)=tanh(zij)
লেকুনের তানহ
দক্ষ ব্যাকপ্রপ দেখুন ।
aij=σ(zij)=1.7159tanh(23zij)
স্কেল:
শক্ত তানহ
aij=σ(zij)=max(−1,min(1,zij))
পরম
aij=σ(zij)=∣zij∣
সংশোধক
রেকটিফায়েড লিনিয়ার ইউনিট (আরএলইউ), সর্বোচ্চ, বা র্যাম্প ফাংশন নামেও পরিচিত ।
aij=σ(zij)=max(0,zij)
ReLU এর পরিবর্তনসমূহ
এগুলি এমন কিছু অ্যাক্টিভেশন ফাংশন যা আমি খেলছিলাম যা মনে হয় রহস্যজনক কারণে এমএনআইএসটির পক্ষে খুব ভাল পারফরম্যান্স পেয়েছে।
aij=σ(zij)=max(0,zij)+cos(zij)
স্কেল:
aij=σ(zij)=max(0,zij)+sin(zij)
স্কেল:
স্মুথ রেকটিফায়ার
স্মুথ রেকটিফাইড লিনিয়ার ইউনিট, স্মুথ ম্যাক্স বা সফট প্লাস নামেও পরিচিত
aij=σ(zij)=log(1+exp(zij))
Logit
aij=σ(zij)=log(zij(1−zij))
স্কেল:
Probit
aij=σ(zij)=2–√erf−1(2zij−1)
।
কোথায় হয় ত্রুটি ফাংশন । এটি প্রাথমিক ফাংশনগুলির মাধ্যমে বর্ণনা করা যায় না, তবে আপনি এটি উইকিপিডিয়া পৃষ্ঠায় এবং এখানে এর বিপরীতটি প্রায় নিকটবর্তী করার উপায়গুলি খুঁজে পেতে পারেন ।erf
বিকল্পভাবে, এটি হিসাবে প্রকাশ করা যেতে পারে
aij=σ(zij)=ϕ(zij)
।
যেখানে হ'ল সংযুক্তি বিতরণ ফাংশন (সিডিএফ)। এটি প্রায় অনুমান করার জন্য এখানে দেখুন ।ϕ
স্কেল:
কোসাইন্
দেখুন র্যান্ডম রান্নাঘর সিংক ।
aij=σ(zij)=cos(zij)
।
Softmax
নর্মালাইজড এক্সপেনশনিয়াল হিসাবেও পরিচিত।
aij=exp(zij)∑kexp(zik)
এটি একটি সামান্য অদ্ভুত কারণ একক নিউরনের আউটপুট সেই স্তরের অন্যান্য নিউরনের উপর নির্ভরশীল। এটি গণনা করাও শক্ত হয়ে যায়, কারণ খুব উচ্চ মানের হতে পারে, সম্ভবত উপচে পড়বে। , যদি খুব কম মান হয় তবে এটি হবে এবং ।zijexp(zij)zij0
এটির বিরুদ্ধে লড়াই করতে আমরা পরিবর্তে গণনা করব । এটি আমাদের দেয়:log(aij)
log(aij)=log⎛⎝⎜exp(zij)∑kexp(zik)⎞⎠⎟
log(aij)=zij−log(∑kexp(zik))
এখানে আমাদের লগ-সম-এক্সপ্রেস ট্রিকটি ব্যবহার করতে হবে :
ধরা যাক আমরা গণনা করছি:
log(e2+e9+e11+e−7+e−2+e5)
আমরা সুবিধার জন্য প্রথমে আমাদের ক্ষয়ক্ষতিগুলি বাছাই করব:
log(e11+e9+e5+e2+e−2+e−7)
তারপরে, যেহেতু আমাদের সর্বোচ্চ, তাই আমরা :e11e−11e−11
log(e−11e−11(e11+e9+e5+e2+e−2+e−7))
log(1e−11(e0+e−2+e−6+e−9+e−13+e−18))
log(e11(e0+e−2+e−6+e−9+e−13+e−18))
log(e11)+log(e0+e−2+e−6+e−9+e−13+e−18)
11+log(e0+e−2+e−6+e−9+e−13+e−18)
তারপরে আমরা ডানদিকে অভিব্যক্তিটি গণনা করতে এবং এর লগ নিতে পারি। এটি করা ঠিক আছে কারণ sum সাথে যোগফল খুব সামান্য , সুতরাং 0 তে কোনও আন্ডারফ্লো যেভাবেই কোনও পার্থক্য তৈরি করার পক্ষে যথেষ্ট তাৎপর্যপূর্ণ না হত। ডানদিকে অভিব্যক্তিতে ওভারফ্লো ঘটতে পারে না কারণ আমরা গ্যারান্টিযুক্ত যে by দ্বারা গুণ করার পরে সমস্ত শক্তি ।log(e11)e−11≤0
সাধারণত, আমরা । তারপর:m=max(zi1,zi2,zi3,...)
log(∑kexp(zik))=m+log(∑kexp(zik−m))
আমাদের সফটম্যাক্স ফাংশনটি তখন পরিণত হয়:
aij=exp(log(aij))=exp(zij−m−log(∑kexp(zik−m)))
সাইডেনোট হিসাবে, সফটম্যাক্স ফাংশনের ডেরাইভেটিভ হ'ল:
dσ(zij)dzij=σ′(zij)=σ(zij)(1−σ(zij))
সর্বোচ্চ আউট
এটি একটি খুব কৌশলযুক্ত। মূলত ধারণাটি হ'ল আমরা আমাদের ম্যাক্সআউট লেয়ারের প্রতিটি নিউরনকে প্রচুর সাব-নিউরনগুলিতে বিভক্ত করি, যার প্রত্যেকটির নিজস্ব ওজন এবং বায়াস রয়েছে। তারপরে নিউরনের ইনপুটটি এর পরিবর্তে এর প্রতিটি সাব-নিউরনগুলিতে যায় এবং প্রতিটি উপ-নিউরন কেবল তাদের এর (কোনও অ্যাক্টিভেশন ফাংশন প্রয়োগ না করে) আউটপুট করে । যে স্নায়ুর তাহলে সব তার উপ-স্নায়ুর এর আউটপুট সর্বোচ্চ।zaij
আনুষ্ঠানিকভাবে, একক নিউরনে, বলুন আমাদের সাব-নিউরন রয়েছে। তারপরn
aij=maxk∈[1,n]sijk
কোথায়
sijk=ai−1∙wijk+bijk
( হয় ডট পণ্য )∙
আমাদের এই সম্পর্কে চিন্তা সাহায্য করার জন্য, ওজন ম্যাট্রিক্স বিবেচনা জন্য একটি স্নায়ুর নেটওয়ার্ক যে ব্যবহার করছে, বলে, একটি সিগমা অ্যাক্টিভেশন ফাংশন স্তর। একটি 2 ডি ম্যাট্রিক্স, যেখানে প্রতিটি কলামের হয় স্নায়ুর জন্য একটি ভেক্টর হয় পূর্ববর্তী স্তর প্রতিটি স্নায়ুর জন্য একটি ওজন ধারণকারী ।WiithWiWijji−1
যদি আমাদের উপ-নিউরন থাকতে চলেছে তবে প্রতিটি নিউরনের জন্য আমাদের 2 ডি ওজন ম্যাট্রিক্স প্রয়োজন, যেহেতু প্রতিটি উপ-নিউরনের পূর্ববর্তী স্তরের প্রতিটি নিউরনের জন্য একটি ওজনযুক্ত ভেক্টরের প্রয়োজন হবে। এর অর্থ হ'ল এখন 3 ডি ওয়েট ম্যাট্রিক্স, যেখানে প্রতিটি একক নিউরোন এর 2D ওজন ম্যাট্রিক্স । এবং তারপরে হ'ল নিউরন সাব-নিউরন -এর জন্য একটি ভেক্টর যা পূর্ববর্তী স্তর প্রতিটি নিউরনের জন্য একটি ওজন ধারণ করে ।WiWijjWijkkji−1
অনুরূপভাবে, একটি স্নায়ুর নেটওয়ার্ক যে আবার ব্যবহার করে, বলুন, একটি সিগমা অ্যাক্টিভেশন ফাংশনে, একটি পক্ষপাত সঙ্গে একটি ভেক্টর হয় প্রতিটি স্নায়ুর জন্য স্তরে ।bibijji
উপ-নিউরোন সঙ্গে এই কাজ করার জন্য, আমরা একটি 2 ডি পক্ষপাত ম্যাট্রিক্স প্রয়োজন প্রতিটি স্তরের , যেখানে জন্য একটি পক্ষপাত সঙ্গে ভেক্টর হয় প্রতিটি subneuron মধ্যে । নিউরনbiibijbijkkjth
একটি ওজন ম্যাট্রিক্স হচ্ছে এবং একটি পক্ষপাত ভেক্টর জন্য প্রতিটি স্নায়ুর তারপর খুব পরিষ্কার উপরে এক্সপ্রেশন করে তোলে, এটি সহজভাবে প্রতিটি উপ-স্নায়ুর এর ওজন প্রয়োগ হচ্ছে আউটপুট থেকে স্তরটি করুন , তারপরে তাদের বায়াসগুলি applying প্রয়োগ করুন এবং সেগুলি সর্বাধিক গ্রহণ করুন।wijbijwijkai−1i−1bijk
রেডিয়াল বেসিস ফাংশন নেটওয়ার্কগুলি
রেডিয়াল বেসিস ফাংশন নেটওয়ার্কগুলি হ'ল ফিডফোর্ড নিউরাল নেটওয়ার্কগুলির একটি পরিবর্তন, যেখানে ব্যবহারের পরিবর্তে
aij=σ(∑k(wijk⋅ai−1k)+bij)
পূর্ববর্তী স্তরে নোড (স্বাভাবিক হিসাবে) এর সাথে আমাদের একটি ওজন have প্রতিটি নোডের জন্য একটি গড় ভেক্টর এবং একটি স্ট্যান্ডার্ড বিচ্যুতি ভেক্টর রয়েছে পূর্ববর্তী স্তরwijkkμijkσijk
তারপর আমরা আমাদের অ্যাক্টিভেশন ফাংশন কল এটা স্ট্যানডার্ড ডেভিয়েশন ভেক্টর সাথে গুলিয়ে ফেলা চলবে পেয়ে এড়াতে । এখন গণনা করার জন্য আমাদের পূর্ববর্তী স্তরের প্রতিটি নোডের জন্য প্রথমে একটি গণনা করতে হবে । একটি বিকল্প হ'ল ইউক্লিডিয়ান দূরত্ব ব্যবহার করা:ρσijkaijzijk
zijk=∥(ai−1−μijk∥−−−−−−−−−−−√=∑ℓ(ai−1ℓ−μijkℓ)2−−−−−−−−−−−−−√
কোথায় হয় উপাদান । এই এক ব্যবহার করে না । বিকল্পভাবে মহালানোবিস দূরত্ব রয়েছে, যা সম্ভবত আরও ভাল সম্পাদন করে:μijkℓℓthμijkσijk
zijk=(ai−1−μijk)TΣijk(ai−1−μijk)−−−−−−−−−−−−−−−−−−−−−−√
যেখানে the হল সমবায় ম্যাট্রিক্স , এটি হিসাবে সংজ্ঞায়িত:Σijk
Σijk=diag(σijk)
অন্য কথায়, হ'ল তির্যক উপাদান হিসাবে with সহ তির্যক ম্যাট্রিক্স । আমরা এখানে এবং column কলামের ভেক্টর হিসাবে সংজ্ঞায়িত কারণ এটি সাধারণত ব্যবহৃত হয় এমন স্বরলিপি।Σijkσijkai−1μijk
এগুলি সত্যিই বলছে যে মহালানোবিসের দূরত্ব হিসাবে সংজ্ঞায়িত করা হয়েছে
zijk=∑ℓ(ai−1ℓ−μijkℓ)2σijkℓ−−−−−−−−−−−−−−⎷
কোথায় হয় উপাদান । মনে রাখবেন যে অবশ্যই সর্বদা ধনাত্মক হতে হবে, তবে এটি স্ট্যান্ডার্ড বিচ্যুতির জন্য একটি সাধারণ প্রয়োজন তাই এটি আশ্চর্যজনক নয়।σijkℓℓthσijkσijkℓ
যদি ইচ্ছা হয় তবে মহালানোবিসের দূরত্বটি যথেষ্ট সাধারণ যে কোভরিয়েন্স ম্যাট্রিক্স other অন্যান্য ম্যাট্রিক হিসাবে সংজ্ঞায়িত করা যায়। উদাহরণস্বরূপ, যদি কোভেরিয়েন্স ম্যাট্রিক্স পরিচয় ম্যাট্রিক্স হয় তবে আমাদের মহালানোবিস দূরত্ব ইউক্লিডিয়ান দূরত্বকে হ্রাস করে। যদিও বেশ সাধারণ, এবং এটি সাধারণত ইউক্যালিডিয়ান দূরত্ব হিসাবে পরিচিত ।ΣijkΣijk=diag(σijk)
যেভাবেই হোক, একবার আমাদের দূরত্বের ফাংশনটি চয়ন করা হয়ে গেলে আমরা মাধ্যমে গণনা করতে পারিaij
aij=∑kwijkρ(zijk)
এই নেটওয়ার্কগুলিতে তারা কারণে অ্যাক্টিভেশন ফাংশন প্রয়োগ করার পরে ওজন দিয়ে গুণ করতে পছন্দ করে।
এটি বর্ণনা করে যে কীভাবে একটি মাল্টি-লেয়ার রেডিয়াল বেসিস ফাংশন নেটওয়ার্ক তৈরি করা যায়, তবে সাধারণত এই নিউরোনগুলির মধ্যে কেবল একটি থাকে এবং এর আউটপুটটি নেটওয়ার্কের আউটপুট। এটি একাধিক নিউরন হিসাবে আঁকা কারণ প্রতিটি গড় ভেক্টর এবং সেই একক নিউরনের প্রতিটি স্ট্যান্ডার্ড বিচ্যুতি ভেক্টর একটি "নিউরন" হিসাবে বিবেচনা করা হয় এবং তারপরে এই ফলাফলগুলির পরে আরও একটি স্তর রয়েছে এটি উপরের মতো ওজনের তুলনায় এই মানের মানগুলি যোগ করে । এটিকে শেষে "সংমিশ্রণকারী" ভেক্টর দিয়ে দুটি স্তরে বিভক্ত করা আমার কাছে অদ্ভুত বলে মনে হয় তবে তারা এটি করে।μijkσijkaij
এছাড়াও এখানে দেখুন ।
রেডিয়াল বেসিস ফাংশন নেটওয়ার্ক অ্যাক্টিভেশন ফাংশন
গসিয়ান
ρ(zijk)=exp(−12(zijk)2)
Multiquadratic
কিছু পয়েন্ট । তারপরে আমরা থেকে দূরত্ব গণনা করব :(x,y)(zij,0)(x,y)
ρ(zijk)=(zijk−x)2+y2−−−−−−−−−−−−√
এটি উইকিপিডিয়া থেকে । এটি সীমাবদ্ধ নয় এবং এটি কোনও ইতিবাচক মান হতে পারে, যদিও আমি ভাবছি যে এটির স্বাভাবিক করার কোনও উপায় আছে কিনা।
যখন , এটি নিখুঁত (অনুভূমিক শিফট ) এর সমান ।y=0x
বিপরীত বহুভুজ
চতুর্ভুজ হিসাবে একই, উল্টানো ছাড়া:
ρ(zijk)=1(zijk−x)2+y2−−−−−−−−−−−−√
* এসভিজি ব্যবহার করে অন্তঃকরণের গ্রাফগুলি থেকে গ্রাফিক্স ।