নিউরাল নেটওয়ার্কের সাথে বাছাই করুন


15

পূর্ববর্তী নিউরাল নেট গল্ফিং চ্যালেঞ্জগুলি ( এটি এবং এটি ) আমাকে নতুন চ্যালেঞ্জ জানাতে উদ্বুদ্ধ করেছিল:

চ্যালেঞ্জ

পূর্ণসংখ্যার সহ কোনও 4-মাত্রিক ইনপুট ভেক্টর দিয়ে দেওয়া সবচেয়ে ছোট ফিডফোরওয়ার্ড নিউরাল নেটওয়ার্কটি সন্ধান করুন , নেটওয়ার্ক আউটপুটগুলি কম স্থায়ীভাবে সমন্বয়যুক্ত ত্রুটি সহ ।(একটি,,,)[-10,10]সাজান(একটি,,,)0.5

গ্রাহ্যতা

এই চ্যালেঞ্জের জন্য, একটি ফিডফর্ডার নিউরাল নেটওয়ার্ক স্তরগুলির সংমিশ্রণ হিসাবে সংজ্ঞায়িত করা হয় । একটি স্তর একটি ফাংশন যে একটি ম্যাট্রিক্স দ্বারা নির্দিষ্ট করা হয় এর ওজন , একটি ভেক্টর এর পক্ষপাতিত্ব , এবং একটি অ্যাক্টিভেশন ফাংশন যা স্থানাঙ্ক প্রয়োগ করা হয়:এল:আরএনআরমিএকজনআরমি×এনআরমি :আরআর

এল(এক্স): =(একজনএক্স+ +),এক্সআরএন

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

  • পরিচয়। (টি)=টি

  • ReLU। (টি)=সর্বোচ্চ(টি,0)

  • Softplus। (টি)=Ln(টি+ +1)

  • হাইপারবোলিক স্পর্শক (টি)=TANH(টি)

  • সিগমা। (টি)=টিটি+ +1

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

[সর্বনিম্ন(একটি,)সর্বোচ্চ(একটি,)]=[1-1-12-121-11212]আরএলইউ[1212-12-121-1-11][একটি]

এই উদাহরণ দুটি স্তর প্রদর্শন করে। উভয় স্তর শূন্য পক্ষপাত আছে। প্রথম স্তরটি রিলু অ্যাক্টিভেশন ব্যবহার করে, যখন দ্বিতীয়টি পরিচয় সক্রিয়করণ ব্যবহার করে।

স্কোরিং

আপনার স্কোরটি ননজারো ওজন এবং বায়াসগুলির মোট সংখ্যা ।

(উদাহরণস্বরূপ, পক্ষপাতের ভেক্টরগুলি শূন্য হওয়ায় উপরের উদাহরণটির স্কোর 16 আছে)


2
@ নিকট-ভোটার: ঠিক কী অস্পষ্ট? আমি মনে করি না পূর্ববর্তী এনএন চ্যালেঞ্জগুলির মধ্যে একটিও এত ভালভাবে নির্দিষ্ট ছিল।
flawr

1
না - এড়িয়ে যাওয়ার সংযোগগুলি অনুমোদিত নয়।
ডাস্টিন জি। মিকসন

1
@ ডাস্টিনজি.মিক্সন আমি আসলে সর্বাধিক / মিনিটের জন্য একটি পন্থা পেয়েছি যা কেবল 16 এর পরিবর্তে 15 ওজন ব্যবহার করে তবে এটি যথেষ্ট কম মার্জিত নয় :)
flawr

3
এটি একটি সুন্দরভাবে নির্দিষ্ট চ্যালেঞ্জ যা আমি মনে করি ভবিষ্যতের স্নায়ু-নেটওয়ার্ক চ্যালেঞ্জগুলির মডেল হিসাবে পরিবেশন করতে পারে।
xnor

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

উত্তর:


13

অক্টাভা , 96 88 87 84 76 54 50 ওজন ও বায়াস

এই 6-স্তরের নিউরাল নেট মূলত একটি উপাদান হিসাবে খুব সাধারণ / নেটওয়ার্ক থেকে নির্মিত একটি 3-পদক্ষেপ বাছাই নেটওয়ার্ক । এটি নীচে যেমন দেখানো হয়েছে উইকিপিডিয়া থেকে উদাহরণস্বরূপ নেটওয়ার্ক, একটি সামান্য পরিবর্তন রয়েছে: প্রথম দুটি তুলনা সমান্তরালে করা হয়। রিএলইউ হওয়া সত্ত্বেও নেতিবাচক সংখ্যাগুলিকে বাইপাস করতে, আমরা কেবল প্রথমে 100 যোগ করি এবং তারপরে শেষে আবার 100 টি বিয়োগ করি।minmax

সুতরাং এটি কেবল একটি বেসলাইন হিসাবে বিবেচনা করা উচিত কারণ এটি একটি নিষ্পাপ বাস্তবায়ন। তবে এটি এমন সমস্ত সম্ভাব্য সংখ্যাকে বাছাই করে যা পুরোপুরি খুব বেশি পরিমাণে নয়। (আমরা 100 এর পরিবর্তে অন্য সংখ্যার সাথে পরিসীমাটি সামঞ্জস্য করতে পারি))

এটি অনলাইন চেষ্টা করুন!

সর্বোচ্চ / মিনিট-কম্পোনেন্ট

কম পরামিতি ব্যবহার করে সর্বনিম্ন এবং সর্বোচ্চ দুটি সংখ্যা সন্ধানের জন্য একটি উপায় ( যথেষ্ট কম মার্জিত উপায় এখন আরও মার্জিত, ধন্যবাদ @ xnor!) উপায় রয়েছে:

সর্বনিম্ন=একটি-আরএলইউ(একটি-)সর্বোচ্চ=+ +আরএলইউ(একটি-)

এর অর্থ আমাদের অনেক কম ওজন এবং বায়াস ব্যবহার করতে হবে।

@ জোয়েলকে এটি নির্দেশ করার জন্য ধন্যবাদ যে এটি প্রথম ধাপে সমস্ত নম্বরকে ইতিবাচক করে তুলতে যথেষ্ট এবং শেষেরটিতে এটির বিপরীত ঘটায় যা -8 ওজন করে। একটি ছোট এমনকি সর্বোচ্চ / মিনিট পদ্ধতি যা 22-ওজন করে তোলে নির্দেশ করার জন্য @xnor ধন্যবাদ! @ ডাস্টিনজি.মিক্সনকে নির্দিষ্ট ম্যাট্রিক্সের সংমিশ্রনের টিপ দেওয়ার জন্য ধন্যবাদ যার ফলস্বরূপ আরও 4-ওজন হয়!

function z = net(u)
a1 = [100;100;0;100;100;0];
A1 = [1 0 0 0;0 0 1 0;1 0 -1 0;0 1 0 0;0 0 0 1;0 1 0 -1];
B1 = [1 0 -1 0 0 0;0 0 0 1 0 -1;0 1 1 0 0 0;0 0 0 0 1 1];
A2 = [1 0 0 0;0 1 0 0;1 -1 0 0;0 0 1 0;0 0 0 1;0 0 1 -1];
A3 = [1 0 -1 0 0 0;0 1 1 0 0 0;0 0 0 1 0 -1;0 1 1 -1 0 1;0 0 0 0 1 1];
B3 = [1 0 0 0 0;0 1 0 -1 0;0 0 1 1 0;0 0 0 0 1];
b3 = -[100;100;100;100];
relu = @(x)x .* (x>0);
id = @(x)x;
v = relu(A1 * u + a1);
w = id(B1 * v) ;
x = relu(A2 * w);
y = relu(A3 * x);
z = id(B3 * y + b3);
% disp(nnz(a1)+nnz(A1)+nnz(B1)+nnz(A2)+nnz(A3)+nnz(B3)+nnz(b3)); %uncomment to count the total number of weights
end

এটি অনলাইন চেষ্টা করুন!


1
ধ্রুবক অফসেটগুলি মূলত ইনপুটগুলি অ-নেতিবাচক করতে ব্যবহৃত হয়। প্রথম স্তরে একবার হয়ে গেলে, তুলনা ব্লকের সমস্ত মধ্যবর্তী আউটপুটগুলি অ-নেতিবাচক হয় এবং এটি কেবলমাত্র শেষ স্তরে ফিরে আসতে যথেষ্ট।
জোয়েল

1
আপনি কি আরও কম সংক্ষিপ্ততম গ্যাজেট পেতে পারেন (a - relu(a-b), b + relu(a-b))?
xnor

@ জোয়েল ওহ এখন আমি দেখতে পাচ্ছি, এটি অনেক
অর্থবোধ করে

@ এক্সনর আপনাকে অনেক ধন্যবাদ যে একটি বিশাল পার্থক্য করেছে !!!!
flawr

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