ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্কে স্তরগুলির সংখ্যা এবং প্রতিটি স্তরের নোডের সংখ্যা নির্বাচন করার জন্য কি কোনও মানক এবং স্বীকৃত পদ্ধতি রয়েছে? আমি নিউরাল নেটওয়ার্ক তৈরির স্বয়ংক্রিয় পদ্ধতিতে আগ্রহী।
ফিড-ফরোয়ার্ড নিউরাল নেটওয়ার্কে স্তরগুলির সংখ্যা এবং প্রতিটি স্তরের নোডের সংখ্যা নির্বাচন করার জন্য কি কোনও মানক এবং স্বীকৃত পদ্ধতি রয়েছে? আমি নিউরাল নেটওয়ার্ক তৈরির স্বয়ংক্রিয় পদ্ধতিতে আগ্রহী।
উত্তর:
আমি বুঝতে পারি যে এই প্রশ্নের উত্তর দেওয়া হয়েছে, তবে আমি মনে করি না যে বিদ্যমান উত্তরটি সত্যই প্রশ্নটির বিষয়বস্তু সম্পর্কিত কোনও লিঙ্কের দিকে নির্দেশ না করেই প্রশ্নটিকে জড়িত করে। বিশেষত, লিঙ্কটি প্রোগ্রামেটিক নেটওয়ার্ক কনফিগারেশনের জন্য একটি কৌশল বর্ণনা করে, তবে সেটি নেটওয়ার্ক কনফিগারেশনের জন্য " [a] মানক এবং স্বীকৃত পদ্ধতি " নয়।
একটি স্পষ্ট নিয়মের একটি ছোট সেট অনুসরণ করে, একটি প্রোগ্রামের ভিত্তিতে একটি উপযুক্ত নেটওয়ার্ক আর্কিটেকচার সেট করতে পারেন (যেমন, নিউরোনাল স্তরগুলির সংখ্যা এবং ধরণ এবং প্রতিটি স্তর সমন্বিত নিউরনের সংখ্যা)। এই স্কিমা অনুসরণ করে এটি আপনাকে একটি উপযুক্ত আর্কিটেকচার দেবে তবে সম্ভবত এটি অনুকূল নয়।
তবে একবার এই নেটওয়ার্কটি শুরু হয়ে গেলে, আপনি বেশ কয়েকটি আনুষাঙ্গিক অ্যালগরিদম ব্যবহার করে প্রশিক্ষণের সময় পুনরাবৃত্তভাবে কনফিগারেশনটি টিউন করতে পারেন; এগুলির একটি পরিবার নির্দিষ্ট সংখ্যক প্রশিক্ষণ পর্বের পরে ওজন ভেক্টরের (ছোট) মানগুলির উপর ভিত্তি করে ছাঁটাই করে কাজ করে - অন্য কথায়, অপ্রয়োজনীয় / অপ্রয়োজনীয় নোডগুলি অপসারণ (এর নীচে আরও)।
সুতরাং প্রতিটি এনএন এর তিন ধরণের স্তর থাকে: ইনপুট , লুকানো এবং আউটপুট ।
এনএন আর্কিটেকচার তৈরি করার অর্থ হ'ল প্রতিটি ধরণের স্তরগুলির সংখ্যা এবং এই স্তরগুলির প্রতিটিটিতে নোডের সংখ্যার জন্য মান উপস্থিত হওয়া।
ইনপুট স্তর
সরল - প্রতিটি এনএন এর মধ্যে একটি হ'ল - ব্যতিক্রম যে সম্পর্কে আমি অবগত।
এই স্তরটি নিয়ে গঠিত নিউরনের সংখ্যার প্রতি শ্রদ্ধা জানায়, আপনার প্রশিক্ষণ ডেটার আকারটি জানার পরে এই প্যারামিটারটি সম্পূর্ণ এবং অনন্যভাবে নির্ধারিত হয়। বিশেষত, সেই স্তরটি সমন্বিত নিউরনের সংখ্যাটি আপনার ডেটাতে বৈশিষ্ট্যগুলির (কলাম) সংখ্যার সমান । কিছু এনএন কনফিগারেশন পক্ষপাত শর্তের জন্য একটি অতিরিক্ত নোড যুক্ত করে।
আউটপুট স্তর
ইনপুট স্তরটির মতো, প্রতিটি এনএন-তে ঠিক একটি আউটপুট স্তর থাকে। এর আকার নির্ধারণ (নিউরনের সংখ্যা) সহজ; এটি সম্পূর্ণরূপে নির্বাচিত মডেল কনফিগারেশন দ্বারা নির্ধারিত হয়।
আপনার এনএন কি মেশিন মোড বা রিগ্রেশন মোডে চলছে (এমন একটি শব্দ ব্যবহারের এমএল কনভেনশন যা পরিসংখ্যানেও ব্যবহৃত হয় তবে এটির জন্য আলাদা অর্থ নির্ধারণ করা খুব বিভ্রান্তিকর)। মেশিন মোড: একটি শ্রেণির লেবেল ফেরত দেয় (উদাঃ, "প্রিমিয়াম অ্যাকাউন্ট" / "বেসিক অ্যাকাউন্ট")। রিগ্রেশন মোড একটি মান দেয় (যেমন, দাম)।
যদি এনএন কোনও রেজিস্ট্রার হয় তবে আউটপুট স্তরের একক নোড থাকে।
যদি এনএন একটি শ্রেণিবদ্ধকারী হয়, তবে এতে সফটম্যাক্স ব্যবহার না করা হলে এটির একটি একক নোডও রয়েছে যদি আপনার মডেলটিতে আউটপুট স্তরের প্রতি ক্লাস লেবেলে একটি নোড থাকে।
গোপন স্তরসমূহ
সুতরাং এই কয়েকটি নিয়ম ইনপুট এবং আউটপুট স্তর উভয়ের জন্য স্তর এবং আকারের (নিউরন / স্তর) সংখ্যা নির্ধারণ করে। যা গোপন স্তরগুলিকে ছেড়ে দেয়।
কয়টি লুকানো স্তর? ঠিক আছে যদি আপনার ডেটা লাইনভাবে পৃথকযোগ্য হয় (যা আপনি প্রায়শই এনএন কোডিং শুরু করার মাধ্যমে জানেন) তবে আপনার কোনও হাইড লেয়ারের দরকার নেই। অবশ্যই, আপনার ডেটা সমাধান করার জন্য আপনার কোনও এনএন প্রয়োজন হবে না তবে এটি কাজটি করবে।
এর বাইরেও, যেমন আপনি সম্ভবত জানেন, এনএনএসে লুকানো স্তর কনফিগারেশন সম্পর্কিত প্রশ্নে একটি মন্তব্যের একটি পর্বত রয়েছে (সেই ভাষ্যটির দুর্দান্ত সংক্ষিপ্তসার জন্য অত্যন্ত উন্মত্ত এবং অন্তর্দৃষ্টিপূর্ণ এনএন এফকিউ দেখুন )। এই বিষয়ে যে বিষয়ে একটি whichক্যমত্য রয়েছে তার মধ্যে একটি বিষয় হ'ল অতিরিক্ত আড়াল স্তরগুলি যুক্ত করার পারফরম্যান্সের পার্থক্য: যে পরিস্থিতিতে পরিস্থিতিতে দ্বিতীয় (বা তৃতীয়, ইত্যাদি) গোপন স্তরের সাথে পারফরম্যান্স উন্নতি হয় খুব কম are একটি বৃহত সংখ্যাগরিষ্ঠ সমস্যার জন্য একটি লুকানো স্তর যথেষ্ট।
তাহলে লুকানো স্তর (গুলি) এর আকার সম্পর্কে কী বলা যায় - কতগুলি নিউরন? থাম্ব-অফ-এর কয়েকটি অনুপ্রেরণামূলকভাবে উত্পন্ন নিয়ম রয়েছে, এর মধ্যে সবচেয়ে বেশি নির্ভর করা হয় ' লুকানো স্তরটির সর্বোত্তম আকার সাধারণত আউটপুট স্তরগুলির ইনপুট এবং আকারের মধ্যে থাকে '। জাভাতে নিউরাল নেটওয়ার্কগুলির পরিচিতির লেখক জেফ হিটন আরও কয়েকটি প্রস্তাব দিয়েছেন।
সংক্ষেপে, বেশিরভাগ সমস্যার জন্য, কেবল দুটি নিয়ম ব্যবহার করে লুকানো স্তর কনফিগারেশনটি সেট করে কেউ সম্ভবত শালীন পারফরম্যান্স পেতে পারে (এমনকি দ্বিতীয় অপ্টিমাইজেশন ধাপ ছাড়াই): (i) লুকানো স্তরগুলির সংখ্যা একটির সমান; এবং (ii) সেই স্তরের নিউরনের সংখ্যা হ'ল ইনপুট এবং আউটপুট স্তরগুলিতে নিউরনের গড়।
নেটওয়ার্ক কনফিগারেশন অনুকূলিতকরণ
কেঁটে সাফকম্পিউটেশনাল পারফরম্যান্স এবং কখনও কখনও রেজোলিউশনের কর্মক্ষমতা উন্নত করতে নেটওয়ার্ক আকার (ট্রায়ার নয় নোডগুলি) ছাঁটাইতে কৌশলগুলির একটি সেট বর্ণনা করে। এই কৌশলগুলির সংক্ষেপটি সেই নোডগুলি সনাক্ত করে প্রশিক্ষণের সময় নেটওয়ার্ক থেকে নোডগুলি সরিয়ে দিচ্ছে যা নেটওয়ার্ক থেকে অপসারণ করা থাকলে নেটওয়ার্কের কার্যকারিতাটি (যেমন, ডেটা রেজোলিউশন) লক্ষণীয়ভাবে প্রভাবিত করবে না। (আনুষ্ঠানিকভাবে ছাঁটাই করার কৌশলটি ব্যবহার না করেও, আপনি প্রশিক্ষণের পরে আপনার ওজন ম্যাট্রিক্স দেখে কোন নোডগুলি গুরুত্বপূর্ণ নয় সে সম্পর্কে মোটামুটি ধারণা পেতে পারেন; ওজনকে শূন্যের খুব কাছাকাছি দেখান - এটি সেই ওজনগুলির উভয় প্রান্তে নোড যা প্রায়শই হয় ছাঁটাই করার সময় অপসারণ করা হয়েছে।) স্পষ্টতই, আপনি প্রশিক্ষণের সময় যদি ছাঁটাই অ্যালগরিদম ব্যবহার করেন তবে এমন একটি নেটওয়ার্ক কনফিগারেশন দিয়ে শুরু করুন যার অতিরিক্ত (যেমন, 'ছাঁটাই') নোড হওয়ার সম্ভাবনা বেশি - অন্য কথায়,
আরেকটি উপায় রাখুন, প্রশিক্ষণের সময় আপনার নেটওয়ার্কে ছাঁটাই অ্যালগরিদম প্রয়োগ করে আপনি সর্বোত্তম নেটওয়ার্ক কনফিগারেশনটির কাছে যেতে পারেন; আপনি একক "আপ-ফ্রন্ট" (যেমন জেনেটিক-অ্যালগোরিদম ভিত্তিক অ্যালগরিদম) তে এটি করতে পারেন কিনা তা আমি জানি না, যদিও আমি জানি যে আপাতত এই দ্বি-পদক্ষেপের অপ্টিমাইজেশনটি বেশি সাধারণ।
@ ডগের উত্তর আমার পক্ষে কাজ করেছে। থাম্বের একটি অতিরিক্ত নিয়ম রয়েছে যা তত্ত্বাবধানে শেখার সমস্যাগুলির জন্য সহায়তা করে। আপনি নীচে আপনার নিউরনের সংখ্যাটি রাখলে আপনি সাধারণত অতিরিক্ত-ফিটিং প্রতিরোধ করতে পারেন:
একটি স্বয়ংক্রিয় পদ্ধতির জন্য আপনি 2 এর আলফা (আপনার মডেল হিসাবে প্রশিক্ষণ ডেটাতে দ্বিগুণ স্বাধীনতার দ্বিগুণ) দিয়ে শুরু করবেন এবং আপনার প্রশিক্ষণ ডেটাসেটের জন্য ত্রুটি (ক্ষতি) যদি এর চেয়ে তুলনামূলকভাবে ছোট হয় তবে 10 পর্যন্ত আপনার পথ চালাবেন আপনার পরীক্ষার ডেটাসেট।
N_h
(প্রতি স্তর প্রতি লুকানো নিউরনের গড় সংখ্যা) সমাধান N_s = (N_i + N_o) * N_h ^ N_hidden_layers
। তবে আমি এখনও এই সূত্রটি ব্যবহার করব না। এটি কেবলমাত্র খুব বেসিক সমস্যা (খেলনা সমস্যা) এর জন্য যখন আপনি অন্য কোনও নিয়মিতকরণ পদ্ধতির প্রয়োগ করার পরিকল্পনা করেন না।
থেকে জাভা জন্য নিউরাল নেটওয়ার্ক থেকে ভূমিকা (দ্বিতীয় সংস্করণ) দ্বারা জেফ Heaton - এ সহজলভ্য পূর্বরূপ গুগল বুকস এবং পূর্বে এ লেখকের ওয়েবসাইট :
লুকানো স্তরগুলির সংখ্যা
লুকানো স্তরগুলি সম্পর্কে সত্যই দুটি সিদ্ধান্ত নেওয়া উচিত: নিউরাল নেটওয়ার্কে প্রকৃতপক্ষে কতগুলি লুকানো স্তর রয়েছে এবং এই স্তরগুলির প্রতিটিটিতে কতগুলি নিউরন থাকবে। আমরা প্রথমে নিউরাল নেটওয়ার্কের সাথে কীভাবে লুকানো স্তরগুলির ব্যবহার করতে হবে তা নির্ধারণ করব।
দুটি গোপন স্তরগুলির জন্য সমস্যাগুলি খুব কমই সম্মুখীন হয়। তবে দুটি গোপন স্তর সহ নিউরাল নেটওয়ার্কগুলি কোনও ধরণের আকারের সাথে ফাংশনগুলি উপস্থাপন করতে পারে। দুটিরও বেশি আড়াল স্তর সহ নিউরাল নেটওয়ার্কগুলি ব্যবহার করার জন্য বর্তমানে কোনও তাত্ত্বিক কারণ নেই। আসলে, অনেক ব্যবহারিক সমস্যার জন্য, একাধিক লুকানো স্তর ব্যবহার করার কোনও কারণ নেই। সারণী 5.1 বিভিন্ন লুকানো স্তর সহ নিউরাল নেটওয়ার্ক আর্কিটেকচারের দক্ষতার সংক্ষিপ্তসার জানায়।
সারণি 5.1: লুকানো স্তরের সংখ্যা নির্ধারণ করা
| লুকানো স্তরের সংখ্যা | ফলাফল | 0 - কেবল রৈখিক বিচ্ছিন্ন কার্যাবলী বা সিদ্ধান্তের প্রতিনিধিত্ব করতে সক্ষম। 1 - অবিচ্ছিন্ন ম্যাপিং থাকা যে কোনও ক্রিয়াকলাপটিকে আনুমানিক করতে পারে এক সীমাবদ্ধ স্থান থেকে অন্য সীমাবদ্ধ। 2 - স্বেচ্ছাসেবী যথাযথতার একটি স্বেচ্ছাসেবী সিদ্ধান্তের সীমানা উপস্থাপন করতে পারে যৌক্তিক অ্যাক্টিভেশন ফাংশন সহ এবং প্রায় কোনও মসৃণ করতে পারে যে কোনও নির্ভুলতার জন্য ম্যাপিং।লুকানো নিউরন স্তরগুলির সংখ্যা সিদ্ধান্ত নেওয়া সমস্যার কেবলমাত্র একটি সামান্য অংশ। আপনাকে অবশ্যই নির্ধারণ করতে হবে যে এই প্রতিটি লুকানো স্তরগুলিতে কতগুলি নিউরন থাকবে। এই প্রক্রিয়াটি পরবর্তী বিভাগে আচ্ছাদিত।
লুকানো স্তরগুলিতে নিউরনের সংখ্যা
গোপন স্তরগুলিতে নিউরনের সংখ্যা নির্ধারণ করা আপনার সামগ্রিক নিউরাল নেটওয়ার্ক আর্কিটেকচারটি স্থির করার একটি অত্যন্ত গুরুত্বপূর্ণ অংশ। যদিও এই স্তরগুলি সরাসরি বাহ্যিক পরিবেশের সাথে যোগাযোগ করে না তবে চূড়ান্ত আউটপুটটিতে তাদের অসাধারণ প্রভাব রয়েছে। এই প্রতিটি লুকানো স্তরগুলির মধ্যে লুকানো স্তরের সংখ্যা এবং নিউরনের সংখ্যা উভয়ই যত্ন সহকারে বিবেচনা করা উচিত।
লুকানো স্তরগুলিতে খুব কম নিউরন ব্যবহার করার ফলে আন্ডারফিটিং নামে পরিচিত এমন কিছু ঘটবে। আন্ডারফিটিং ঘটে যখন লুকানো স্তরগুলিতে খুব কম সংখ্যক নিউরন থাকে কোনও জটিল ডেটা সেটে সংকেতগুলি পর্যাপ্তভাবে সনাক্ত করতে।
লুকানো স্তরগুলিতে অত্যধিক নিউরন ব্যবহার করার ফলে বেশ কয়েকটি সমস্যা দেখা দিতে পারে। প্রথমত, লুকানো স্তরগুলির মধ্যে অনেকগুলি নিউরন ওভারফিটের ফলস্বরূপ হতে পারে। ওভারফিটিং ঘটে যখন নিউরাল নেটওয়ার্কের এত বেশি তথ্য প্রক্রিয়াকরণ ক্ষমতা থাকে যে ট্রেনিং সেটে থাকা সীমিত পরিমাণে তথ্য লুকানো স্তরগুলির সমস্ত নিউরনকে প্রশিক্ষণের জন্য পর্যাপ্ত নয়। প্রশিক্ষণের ডেটা পর্যাপ্ত থাকলেও দ্বিতীয় সমস্যা দেখা দিতে পারে। লুকানো স্তরগুলিতে একটি অযৌক্তিকভাবে সংখ্যক নিউরন নেটওয়ার্ককে প্রশিক্ষণ নিতে সময় নিতে পারে। প্রশিক্ষণের সময়টির পরিমাণটি এমন পর্যায়ে বাড়তে পারে যে নিউরাল নেটওয়ার্ককে পর্যাপ্ত প্রশিক্ষণ দেওয়া অসম্ভব। স্পষ্টতই, লুকানো স্তরগুলিতে খুব বেশি এবং খুব কম নিউরনের মধ্যে কিছু আপস করতে হবে।
আড়াল স্তরগুলিতে সঠিকভাবে নিউরনের সঠিক সংখ্যা নির্ধারণের জন্য অনেকগুলি নিয়ম-নীতির থাম্ব পদ্ধতি রয়েছে যেমন:
- লুকানো নিউরনের সংখ্যা ইনপুট স্তরের আকার এবং আউটপুট স্তরের আকারের মধ্যে হওয়া উচিত।
- লুকানো নিউরনের সংখ্যা ইনপুট স্তরের আকার, এবং আউটপুট স্তরের আকার 2/3 হওয়া উচিত।
- লুকানো নিউরনের সংখ্যা ইনপুট স্তরের আকারের দ্বিগুণের চেয়ে কম হওয়া উচিত।
এই তিনটি নিয়ম আপনার বিবেচনার জন্য একটি সূচনা পয়েন্ট সরবরাহ করে। শেষ পর্যন্ত, আপনার নিউরাল নেটওয়ার্কের জন্য একটি আর্কিটেকচারের নির্বাচন পরীক্ষা এবং ত্রুটিতে নেমে আসবে। কিন্তু বিচার এবং ত্রুটি বলতে আসলে কি বোঝানো হয়েছে? আপনি আপনার নেটওয়ার্কে এলোমেলোভাবে স্তর এবং নিউরনের নিক্ষেপ শুরু করতে চান না। এটি করা খুব সময় সাশ্রয়ী হবে। অধ্যায় 8, "একটি নিউরাল নেটওয়ার্ক ছাঁটাই" নিউরাল নেটওয়ার্কের জন্য একটি অনুকূল কাঠামো নির্ধারণের বিভিন্ন উপায় অনুসন্ধান করবে।
আমি রিসার্চগেট.নেটে পেয়েছি এমন একটি উত্তর থেকে নীচের স্নিপেটটিও পছন্দ করি , যা কেবল কয়েকটি কথায় অনেকটা বোঝায়:
স্টিফেন বি পিটারসেন · অ্যালবার্গ বিশ্ববিদ্যালয়
[...]
নেটওয়ার্কের দক্ষতা সুরক্ষার জন্য নোডের সংখ্যা যথাসম্ভব কম রাখতে হবে। আপনার যদি নোডের পরিমাণ বাড়তি থাকে তবে আপনার নেটওয়ার্কটি একটি মেমরি ব্যাঙ্কে পরিণত হয় যা প্রশিক্ষণের জন্য নিখুঁত সেটটিকে স্মরণ করতে পারে, তবে প্রশিক্ষণ সংস্থার অংশ নয় এমন নমুনাগুলিতে ভাল সম্পাদন করে না।
আমি এই মুহুর্তে এর একটি অভিজ্ঞতা অভিজ্ঞতা নিয়ে কাজ করছি (আমাদের এইচপিসি সুবিধায় সিমুলেশনগুলির একটি প্রসেসর-শতাব্দীর কাছে পৌঁছে!)। আমার পরামর্শটি হ'ল "বৃহত্তর" নেটওয়ার্ক এবং নিয়মিতকরণ ব্যবহার করা হবে, আপনি যদি নিয়মিতকরণ ব্যবহার করেন তবে নেটওয়ার্ক আর্কিটেকচারটি কম গুরুত্বপূর্ণ হয়ে উঠবে (শর্তাধীন যেটি আমরা ধারণ করতে চাই তার অন্তর্নিহিত ফাংশনটি উপস্থাপনের জন্য এটি যথেষ্ট পরিমাণে বড় হয়ে থাকে) তবে আপনাকে নিয়মিতকরণের সাথে সুর দেওয়ার দরকার নেই সঠিকভাবে পরামিতি।
আর্কিটেকচার নির্বাচনের সমস্যাগুলির মধ্যে একটি হ'ল মডেলটির জটিলতার উপর নিয়মিত নিয়ন্ত্রণের চেয়ে এটি একটি স্বতন্ত্র এবং অতএব আদর্শ জটিলতা হ'ল বিশেষত যখন একটি অনর্থক উপকরণ হতে পারে।
যাইহোক, এটি সমস্ত "নিখরচায় মধ্যাহ্নভোজ" তত্ত্বগুলির সাপেক্ষে, যদিও বেশিরভাগ ক্ষেত্রে নিয়মিতকরণ কার্যকর হয়, সেখানে সবসময় এমন ঘটনা থাকবে যেখানে আর্কিটেকচার নির্বাচন আরও ভালভাবে কাজ করে, এবং এটি যদি সমস্যাটি সত্যই সত্য হয় কিনা তা আবিষ্কার করার একমাত্র উপায় will উভয় পদ্ধতির চেষ্টা এবং ক্রস-বৈধতা যাচাই করা হয়।
যদি আমি একটি স্বয়ংক্রিয় নিউরাল নেটওয়ার্ক নির্মাতা তৈরি করতে চাই, তবে আমি র্যাডফোর্ড নীলের হাইব্রিড মন্টি কার্লো (এইচএমসি) স্যাম্পলিং-ভিত্তিক বায়েশিয়ান পদ্ধতির ব্যবহার করতাম এবং একটি একক নেটওয়ার্কের ওজনকে অনুকূলিত করার পরিবর্তে একটি বৃহত নেটওয়ার্ক ব্যবহার করতাম এবং ওজনকে একীকরণ করতাম। তবে এটি গণনামূলকভাবে ব্যয়বহুল এবং কিছুটা "ব্ল্যাক আর্ট", তবে প্রফেসর নীল যে ফলাফলগুলি অর্জন করেছেন তা বোঝায় এটি মূল্যবান!
আমি যতদূর জানি প্রতিটি স্তরে স্তর এবং নিউরনের সংখ্যা স্বয়ংক্রিয়ভাবে নির্বাচনের কোনও উপায় নেই। তবে এমন নেটওয়ার্ক রয়েছে যা ইএনএএন (বিবর্তনীয় কৃত্রিম নিউরাল নেটওয়ার্কগুলি, যা টপোলজির বিবর্তনে জেনেটিক অ্যালগরিদম ব্যবহার করে) এর মতো স্বয়ংক্রিয়ভাবে তাদের টপোলজি তৈরি করতে পারে।
বেশ কয়েকটি পদ্ধতি রয়েছে, একটি কম বা কম আধুনিক যা ভাল ফলাফল দেয় বলে মনে হয়েছিল সেটি হল NEAT (অগমেন্টেড টপোলজিসের নিউরো বিবর্তন) ।
Hidden লুকানো নোডের সংখ্যা: লুকানো নিউরনের সর্বোত্তম সংখ্যা নির্বাচন করার জন্য কোনও ম্যাজিক সূত্র নেই। তবে লুকানো নিউরনের সংখ্যা গণনার জন্য কিছু থাম্ব বিধি উপলব্ধ rules মাস্টার্স (1993) দ্বারা প্রস্তাবিত জ্যামিতিক পিরামিড বিধি দ্বারা একটি মোটামুটি অনুমান পাওয়া যায়। এন ইনপুট এবং এম আউটপুট নিউরন সহ একটি তিন স্তর নেটওয়ার্কের জন্য, লুকানো স্তরটিতে থাকবে would
সূত্র:
1 মাস্টার্স, তীমথিয় C ++ এ ব্যবহারিক স্নায়বিক নেটওয়ার্ক রেসিপি। মরগান কাউফম্যান, 1993।
[২] http://www.iitbhu.ac.in/factory/min/rajesh-rai/NMEICT- স্লোপ / নির্বাচন / c14/l1.html
গ্লোবাল হাইপার-প্যারামিটার অনুসন্ধান ব্যবহার করে স্নায়বিক নেটওয়ার্কগুলি নির্মাণের স্বয়ংক্রিয় উপায়:
ইনপুট এবং আউটপুট স্তরগুলি স্থির আকার।
কি আলাদা হতে পারে:
ব্যয় কার্যকারিতা হিসাবে নমুনা ত্রুটিযুক্ত নেটওয়ার্কের বাইরে , এই বিচ্ছিন্ন অপ্টিমাইজেশন সমস্যার জন্য একাধিক পদ্ধতি ব্যবহার করা যেতে পারে ।
দুঃখিত আমি এখনও কোনও মন্তব্য পোস্ট করতে পারি না তাই দয়া করে আমার সাথে সহ্য করুন। যাইহোক, আমি এই আলোচনার থ্রেডে ঝাঁপিয়ে পড়েছি যা আমাকে সম্প্রতি প্রকাশিত একটি কাগজের কথা মনে করিয়ে দেয় । আমি মনে করি এখানে অংশ নেওয়া লোকদের পক্ষে এটি আগ্রহী:
অ্যাডনেট: কৃত্রিম নিউরাল নেটওয়ার্কগুলির অভিযোজিত স্ট্রাকচারাল লার্নিং
করিন্না কর্টেস, জাভিয়ের গঞ্জালভো, ভাইটালি কুজনেস্তভ, মেহরিয়ার মোহরি, স্কট ইয়াং; মেশিন লার্নিংয়ের 34 তম আন্তর্জাতিক সম্মেলনের কার্যক্রম, পিএমএলআর 70: 874-883, 2017।
বিমূর্ত আমরা কৃত্রিম নিউরাল নেটওয়ার্কগুলি বিশ্লেষণ এবং শেখার জন্য একটি নতুন কাঠামো উপস্থাপন করি। আমাদের পদ্ধতির একযোগে এবং অভিযোজিতভাবে নেটওয়ার্কের কাঠামো পাশাপাশি এর ওজন উভয়ই শেখে। পদ্ধতিটি উপর ভিত্তি করে এবং শক্তিশালী ডেটা নির্ভর নির্ভর তাত্ত্বিক শিক্ষার গ্যারান্টি সহ, যাতে চূড়ান্ত নেটওয়ার্ক আর্কিটেকচারটি প্রদত্ত যে কোনও সমস্যার জটিলতায় কার্যকরভাবে মানিয়ে যায়।
আমি আমার মাস্টার্স থিসিস, টপিক 3 এ টপোলজি শেখার বিভিন্ন উপায়ে তালিকাভুক্ত করেছি । বড় বিভাগগুলি হল:
আমি একটি কম সাধারণ কিন্তু সুপার কার্যকর পদ্ধতি প্রস্তাব করতে চাই ।
মূলত, আপনি "জেনেটিক অ্যালগরিদম" নামক অ্যালগরিদমগুলির একটি সেটকে উত্তোলন করতে পারেন যা সম্ভাব্য বিকল্পগুলির একটি ছোট উপসেট চেষ্টা করে (স্তর প্রতি স্তর এবং নোডের এলোমেলো সংখ্যা)। এরপরে এটি বিকল্পের এই জনসংখ্যাকে "পিতামাতা" হিসাবে বিবেচনা করে যা এক বা একাধিক জীবকে মিশ্রিত / মিউটেশন করে বাচ্চাদের সৃষ্টি করে যেমন জীবের মতোই বিকশিত হয়। সেরা শিশু এবং কিছু এলোমেলো ঠিক আছে বাচ্চাদের প্রতিটি প্রজন্ম এবং প্রজন্ম ধরে রাখা হয়, সবচেয়ে উপযুক্ত বেঁচে থাকে।
100 ডলার বা তার চেয়ে কম প্যারামিটারের জন্য (যেমন স্তরগুলির সংখ্যা, স্তরগুলির ধরণের পছন্দ এবং প্রতি স্তর প্রতি নিউরনের সংখ্যা) এই পদ্ধতিটি অত্যন্ত কার্যকর। প্রতিটি প্রজন্মের জন্য বেশ কয়েকটি সম্ভাব্য নেটওয়ার্ক আর্কিটেকচার তৈরি করে এবং লার্নিং কার্ভটি অনুমান করা না হওয়া পর্যন্ত তাদের আংশিক প্রশিক্ষণ দিয়ে ব্যবহার করুন (100-10k মিনি-ব্যাচগুলি সাধারণত অনেকগুলি পরামিতিগুলির উপর নির্ভর করে)। কয়েক প্রজন্মের পরে, আপনি ট্রেন এবং বৈধতার বাচ্চাদের বাছাইয়ের জন্য আপনার উদ্দেশ্যমূলক কাজ হিসাবে উল্লেখযোগ্যভাবে পৃথক ত্রুটি হার (ওভারফিটিং) শুরু করার পয়েন্টটি বিবেচনা করতে পারেন। আপনি কোনও উপসংহারে দ্রুত পৌঁছানোর জন্য কোনও চূড়ান্ত মডেল নির্বাচন না করা অবধি আপনার ডেটাগুলির একটি খুব ছোট উপসেট (10-20%) ব্যবহার করা ভাল ধারণা হতে পারে। এছাড়াও, ফলাফলগুলি সঠিকভাবে তুলনা করতে আপনার নেটওয়ার্ক সূচনার জন্য একটি একক বীজ ব্যবহার করুন।
10-50 প্রজন্মের একটি শালীন আকারের নেটওয়ার্কের জন্য দুর্দান্ত ফলাফল পাওয়া উচিত।
লুকানো স্তরগুলির সংখ্যা এবং তারা কী অর্জন করতে পারে:
0 - কেবল রৈখিক বিচ্ছিন্ন কার্যাবলী বা সিদ্ধান্তের প্রতিনিধিত্ব করতে সক্ষম।
1 - কোনও সীমাবদ্ধ স্থান থেকে অন্য সীমাতে অবিচ্ছিন্ন ম্যাপিং থাকা যে কোনও ক্রিয়াকলাপটিকে আনুমানিক করতে পারে।
2 - যৌক্তিক অ্যাক্টিভেশন ফাংশনগুলির সাথে স্বেচ্ছাসেবী যথাযথতার একটি স্বেচ্ছাসেবী সিদ্ধান্তের সীমার প্রতিনিধিত্ব করতে পারে এবং কোনও নির্ভুলতার জন্য কোনও মসৃণ ম্যাপিং আনুমানিক করতে পারে।
2 এরও বেশি - অতিরিক্ত স্তরগুলি স্তর স্তরগুলির জন্য জটিল উপস্থাপনা (স্বয়ংক্রিয় বৈশিষ্ট্য ইঞ্জিনিয়ারিংয়ের ধরণ) শিখতে পারে।