জটিলটি সম্পর্কে সহজ কথায়: নিউরাল নেটওয়ার্কগুলি কী কী? স্ক্র্যাচ থেকে একটি ফিডফোরওয়ার্ড নিউরাল নেটওয়ার্ক লেখা।
নিউরাল নেটওয়ার্ক কী?
আপনি জানেন যে, আমাদের মস্তিষ্ক একটি জটিল জিনিস। এর কাজের সমন্বয়টি নিউরনগুলির মাধ্যমে ঘটে – শাখাগুলি সহ স্নায়ু কোষগুলি তাদের থেকে প্রসারিত হয়। একে অপরের সাথে জড়িত, নিউরনগুলি নিউরাল নেটওয়ার্ক গঠন করে – একটি জটিল প্রক্রিয়া যা মানুষের মানসিকতার সমস্ত বৈচিত্র্য নির্ধারণ করে। এটি আমাদের আত্ম-সচেতনতার মূল, ব্যক্তি হিসাবে আমাদের অনুভূতি, আমাদের অভ্যন্তরীণ ইচ্ছা এবং আকাঙ্ক্ষাগুলি দ্বারা পরিচালিত।
নিউরনের কাজে যদি কোনও ত্রুটি দেখা দেয় তবে ব্যক্তি স্বীকৃতি ছাড়িয়ে পরিবর্তন করে। আঘাতের তীব্রতার উপর নির্ভর করে, শরীরের স্বাভাবিক ক্রিয়াকলাপ বন্ধের ক্ষেত্রে ক্ষুদ্র আচরণের হালকা লক্ষণ থেকে শুরু করে পরিবর্তনগুলি। মস্তিষ্কের ক্ষতি প্রায়শই মারাত্মক হয়।
তবে আজ আমরা জীববিজ্ঞানের বিষয়ে কথা বলব না, কারণ আমাদের মস্তিষ্কের সিস্টেমকে কেবল নিউরাল নেটওয়ার্কই বলা হয় না, একই রকম অপারেটিং নীতিগুলির সাথে একটি জটিল কম্পিউটার প্রোগ্রামও রয়েছে। ধূসর পদার্থের মতো এটি ফ্র্যাক্টাল, অর্থাত্ এটিতে অনেকগুলি সহজ প্রোগ্রাম থাকে যা এক ধরণের সিম্বিওসিস তৈরি করে।
কাজ করার সময়, নিউরাল নেটওয়ার্ক শিখে, অভিজ্ঞতা অর্জন করে এবং আরও নিখুঁত হয়। সুতরাং, আমরা একটি বাস্তব ডিজিটাল জীব নিয়ে কাজ করছি, যা একদিন তার স্রষ্টাকে ছাড়িয়ে যাওয়ার পূর্বাভাস।
নিউরাল নেটওয়ার্কগুলি কীভাবে উপস্থিত হয়েছিল
কৃত্রিম নিউরাল নেটওয়ার্কগুলির ধারণার উত্থান পূর্ববর্তী শতাব্দীর 40 এর দশকে। বিশেষত, এটি বিজ্ঞানী ম্যাকক্লোক এবং পিটস, যারা মস্তিষ্কের প্রক্রিয়াগুলি অনুকরণ করার চেষ্টা করেছিলেন সাথে জড়িত। তারা বিভিন্ন যৌক্তিক ক্রিয়াকলাপ সম্পাদন করার জন্য ডিজাইন করা একটি স্ব-শিক্ষার ব্যবস্থা তৈরির ধারণাও প্রস্তাব করেছিল। সমস্যাটি ছিল যে সেই সময়ের প্রযুক্তিগুলি আজকের থেকে অনেক দূরে ছিল এবং আবিষ্কারকরা তাদের ধারণাগুলি পুরোপুরি উপলব্ধি করতে ব্যর্থ হয়েছিল।
(ওয়ারেন ম্যাকক্লোক এবং ওয়াল্টার পিটস)
তাদের কাজ কানাডার পদার্থবিজ্ঞানী ডোনাল্ড হেব দ্বারা অব্যাহত ছিল এবং 1949 সালে এএনএন কম্পিউটিংয়ের জন্য প্রথম অ্যালগরিদম বিশ্বের কাছে উপস্থাপিত হয়েছিল। পরবর্তী দশ বছর ধরে, এটি অন্যান্য বিজ্ঞানীদের বিকাশের ভিত্তি হিসাবে কাজ করেছিল, অবশেষে, ১৯৫৮ সালে, ফ্রাঙ্ক রোজেনব্ল্যাট পারসেপট্রন তৈরি করেছিলেন, যা আমাদের মস্তিস্কের কাজকে নকল করে। তার সময়ের জন্য, এই অভিনবত্বটি অবিশ্বাস্য ছিল। সোভিয়েত এবং আমেরিকান বিজ্ঞানীরা এই কাজে যোগ দিয়েছিলেন, যারা গবেষণায়ও যথেষ্ট অবদান রেখেছিলেন।
XX এর শেষের দিকে – XXI শতাব্দীর শুরুর দিকে, প্রযুক্তিটি একটি তীব্র লাফিয়ে উঠল, যা আরও নিবিড় বৈজ্ঞানিক ক্রিয়াকলাপের জন্য ভাল উত্সাহ হিসাবে কাজ করেছিল এবং 2007 সালে কম্পিউটার বিজ্ঞানী জেফ্রি হিন্টন নিউরাল নেটওয়ার্কগুলির জন্য একটি গভীর শিক্ষার অ্যালগরিদম নিয়ে এসেছিলেন, যা এখন ব্যাপকভাবে ব্যবহৃত হয় স্ব-ড্রাইভিং গাড়ি।
(জেফ্রি হিন্টন)
ইতিহাসের একটি বিট
প্রথমবারের জন্য, মস্তিষ্কের প্রক্রিয়াগুলি অনুকরণ করার চেষ্টা করার সময় কৃত্রিম নিউরাল নেটওয়ার্কগুলির (এএনএন) ধারণাটি উঠে আসে। এই অঞ্চলে প্রথম বড় অগ্রগতি 1943 সালে ম্যাককুলোক-পিটস নিউরাল নেটওয়ার্ক মডেল তৈরি হিসাবে বিবেচনা করা যেতে পারে। বিজ্ঞানীরা প্রথমে একটি কৃত্রিম নিউরনের একটি মডেল তৈরি করেছিলেন। যৌক্তিক কার্যক্রম পরিচালনার জন্য তারা এই উপাদানগুলির একটি নেটওয়ার্ক তৈরির প্রস্তাবও করেছিলেন। তবে সবচেয়ে বড় কথা, বিজ্ঞানীরা প্রমাণ করেছেন যে এই জাতীয় নেটওয়ার্ক শেখার পক্ষে সক্ষম।
পরবর্তী গুরুত্বপূর্ণ পদক্ষেপটি ছিল 1949 সালে এএনএন গণনা করার জন্য প্রথম অ্যালগরিদমের ডোনাল্ড হেবের বিকাশ, যা পরবর্তী কয়েক দশক ধরে মৌলিক হয়ে ওঠে। 1958 সালে, ফ্রাঙ্ক রোজেনব্ল্যাট পারসেপট্রন বিকাশ করেছিলেন, এটি মস্তিষ্কের প্রক্রিয়াগুলির অনুকরণ করে। এক সময়, প্রযুক্তির কোনও অ্যানালগ ছিল না এবং এটি এখনও নিউরাল নেটওয়ার্কগুলিতে মৌলিক। 1986 সালে, প্রায় একই সাথে একে অপরের থেকে পৃথকভাবে আমেরিকান এবং সোভিয়েত বিজ্ঞানীরা মাল্টিলেয়ার পারসেপ্ট্রন শেখানোর মৌলিক পদ্ধতির উল্লেখযোগ্য উন্নতি করেছিলেন । 2007 সালে, নিউরাল নেটওয়ার্কগুলির একটি পুনর্বার জন্ম হয়েছিল। ব্রিটিশ কম্পিউটার বিজ্ঞানী জেফ্রি হিন্টন মাল্টিলেয়ার নিউরাল নেটওয়ার্কগুলির জন্য প্রথমে একটি গভীর শিক্ষার অ্যালগরিদম তৈরি করা হয়েছিল, যা এখন, উদাহরণস্বরূপ, মানহীন যানবাহন পরিচালনা করতে ব্যবহৃত হয়।
মূল জিনিস সম্পর্কে সংক্ষেপে
শব্দের সাধারণ অর্থে, নিউরাল নেটওয়ার্কগুলি গাণিতিক মডেল যা কোনও প্রাণীর জীবের স্নায়ু কোষের নেটওয়ার্কের নীতিতে কাজ করে। এএনএন দুটি প্রোগ্রামযোগ্য এবং হার্ডওয়্যার সমাধানগুলিতে প্রয়োগ করা যেতে পারে। উপলব্ধি স্বাচ্ছন্দ্যের জন্য, একটি নিউরন এক ধরণের ঘর হিসাবে কল্পনা করা যায়, যার অনেকগুলি ইনপুট গর্ত এবং একটি আউটপুট থাকে has বহির্গামী একের মধ্যে কতগুলি আগত সংকেত গঠিত হয় তা গণনা অ্যালগরিদম নির্ধারণ করে। কার্যকরী মানগুলি প্রতিটি নিউরন ইনপুটকে খাওয়ানো হয়, যা পরে আন্তঃনিরোনাল সংযোগ (সংশ্লেষ) দ্বারা প্রচারিত হয়। সিনাপেসে একটি প্যারামিটার থাকে – ওজন, যার কারণে ইনপুট তথ্যগুলি যখন একটি নিউরন থেকে অন্যটিতে চলে যায় তখন পরিবর্তন হয়। নিউরাল নেটওয়ার্কগুলি কীভাবে কাজ করে তা কল্পনা করার সহজতম উপায়টি রঙের মিশ্রণের উদাহরণ দ্বারা উপস্থাপিত হতে পারে। নীল, সবুজ এবং লাল নিউরনের বিভিন্ন ওজন থাকে।
নিউরাল নেটওয়ার্ক নিজেই এ জাতীয় অনেকগুলি নিউরোন (প্রসেসর) এর একটি সিস্টেম। পৃথকভাবে, এই প্রসেসরগুলি বেশ সহজ (একটি ব্যক্তিগত কম্পিউটার প্রসেসরের তুলনায় অনেক সহজ), তবে যখন কোনও বড় সিস্টেমে সংযুক্ত থাকে, তখন নিউরনগুলি খুব জটিল কাজ সম্পাদন করতে সক্ষম হয়।
প্রয়োগের ক্ষেত্রের উপর নির্ভর করে একটি নিউরাল নেটওয়ার্ককে বিভিন্ন উপায়ে ব্যাখ্যা করা যায় For উদাহরণস্বরূপ, মেশিন লার্নিংয়ের দৃষ্টিকোণ থেকে, একটি এএনএন একটি নিদর্শন স্বীকৃতি পদ্ধতি। গাণিতিক দৃষ্টিকোণ থেকে এটি একটি মাল্টি-প্যারামিটার সমস্যা। সাইবারনেটিক্সের দৃষ্টিকোণ থেকে এটি রোবোটিক্সের অভিযোজিত নিয়ন্ত্রণের একটি মডেল। কৃত্রিম বুদ্ধিমত্তার জন্য, এএনএন গণনা সংক্রান্ত অ্যালগরিদম ব্যবহার করে প্রাকৃতিক বুদ্ধিমত্তাকে মডেলিংয়ের একটি মৌলিক উপাদান।
প্রচলিত গণনা অ্যালগরিদমের উপর নিউরাল নেটওয়ার্কগুলির প্রধান সুবিধা হ'ল তাদের শেখার দক্ষতা। শব্দের সাধারণ অর্থে, শেখার মধ্যে রয়েছে নিউরনের মধ্যে সঠিক সংযোজন সহগ খুঁজে পাওয়ার পাশাপাশি ডেটা সাধারণকরণ এবং ইনপুট এবং আউটপুট সিগন্যালের মধ্যে জটিল সম্পর্ক চিহ্নিতকরণ consists প্রকৃতপক্ষে, নিউরাল নেটওয়ার্কের সফল প্রশিক্ষণের অর্থ সিস্টেমটি প্রশিক্ষণের সেটে উপস্থিত না থাকা তথ্যের ভিত্তিতে সঠিক ফলাফলটি সনাক্ত করতে সক্ষম হবে।
নিউরাল নেটওয়ার্কের প্রয়োগ
নিউরাল নেটওয়ার্কগুলির প্রয়োগের ব্যাপ্তি অবিশ্বাস্যভাবে প্রশস্ত এবং কেবল আমাদের কল্পনা দ্বারা সীমাবদ্ধ। আসুন তাদের কয়েকটি তালিকা করা যাক:
- স্বয়ংক্রিয় পরিবহন নিয়ন্ত্রণ ব্যবস্থা। অটোপাইলট।
- ইন্টারনেট. ভয়েস সহায়ক, স্মার্ট ব্রাউজার, অনুবাদ প্রোগ্রাম।
- অর্থনীতি এবং ব্যবসা। পূর্বাভাস বিনিময় হার, আধুনিক অ্যাকাউন্টিং প্রোগ্রাম, ট্রেডিং রোবট, ঝুঁকি মূল্যায়ন প্রোগ্রাম, উত্পাদন মেশিনের পরিচালনা, মান নিয়ন্ত্রণ ইত্যাদি।
- ওষুধ. রোগ নির্ণয়ের আধুনিক পদ্ধতি, চিকিত্সার কার্যকারিতা বিশ্লেষণ, মেডিকেল ইমেজগুলি প্রক্রিয়াজাতকরণ।
- যন্ত্রমানব নির্মাণ বিদ্যা. রুট পরিকল্পনা, বক্তৃতা এবং অঙ্গভঙ্গি স্বীকৃতি।
- সুরক্ষা। ভিডিও নজরদারি সিস্টেম এবং অ্যালার্মগুলির পরিচালনা।
- কম্পিউটার গেম এবং বিনোদন। স্মার্ট বট, দাবা এবং অন্যান্য গেমের জন্য বিশ্লেষণমূলক প্রোগ্রাম।
- শিল্প. পেইন্টিং, বই এবং অন্যান্য সাংস্কৃতিক নিদর্শন তৈরি করা।
আজকের অবস্থা
এবং এই প্রযুক্তিটি কতটা প্রতিশ্রুতিবদ্ধ হবে তা নির্বিশেষে এখনও এএনএনগুলি এখনও মানুষের মস্তিষ্ক এবং চিন্তাভাবনার ক্ষমতা থেকে খুব দূরে রয়েছে। তবুও, মানব ক্রিয়াকলাপের অনেক ক্ষেত্রে ইতিমধ্যে নিউরাল নেটওয়ার্ক ব্যবহার করা হচ্ছে। এখনও অবধি, তারা উচ্চ বৌদ্ধিক সিদ্ধান্ত নিতে সক্ষম হয় না তবে তারা এমন ব্যক্তিকে প্রতিস্থাপন করতে সক্ষম হয় যেখানে তার আগে প্রয়োজন ছিল। এএনএন আবেদনের অসংখ্য ক্ষেত্রগুলির মধ্যে একটি নোট করতে পারে: উত্পাদন প্রক্রিয়াগুলির স্ব-লার্নিং সিস্টেম, মানহীন যানবাহন, চিত্র স্বীকৃতি সিস্টেম, বুদ্ধিমান সুরক্ষা ব্যবস্থা, রোবোটিকস, মান নিরীক্ষণ সিস্টেম, ভয়েস ইন্টারেক্টিভ ইন্টারফেস, বিশ্লেষণ সিস্টেম এবং আরও অনেক কিছু। এএনএন শেখার গতি বাড়ানোর বিভিন্ন উপায়ে উত্থানের কারণে অন্যান্য বিষয়গুলির মধ্যেও নিউরাল নেটওয়ার্কগুলির এই ব্যাপক ব্যবহার use
আজ নিউরাল নেটওয়ার্কগুলির বাজার বিশাল – এটি বিলিয়ন-বিলিয়ন ডলার। অনুশীলন শো হিসাবে, বিশ্বজুড়ে স্নায়বিক নেটওয়ার্কগুলির বেশিরভাগ প্রযুক্তি একে অপরের থেকে সামান্য আলাদা। তবে স্নায়বিক নেটওয়ার্কগুলির ব্যবহার একটি ব্যয়বহুল উদ্যোগ, যা বেশিরভাগ ক্ষেত্রে কেবল বড় সংস্থাগুলিই সরবরাহ করতে পারে। নিউরাল নেটওয়ার্কগুলির বিকাশ, প্রশিক্ষণ এবং পরীক্ষার জন্য, বৃহত কম্পিউটিং পাওয়ার প্রয়োজন, এটি স্পষ্ট যে আইটি বাজারে বড় প্লেয়ারদের যথেষ্ট পরিমাণে এটি রয়েছে। এই অঞ্চলে উন্নয়নের নেতৃত্বদানকারী মূল সংস্থাগুলির মধ্যে হ'ল গুগলের ডিপমাইন্ড বিভাগ, মাইক্রোসফ্ট গবেষণা বিভাগ, আইবিএম, ফেসবুক এবং বাইদু id
অবশ্যই, এটি সব ভাল: নিউরাল নেটওয়ার্কগুলি বিকাশ করছে, বাজার বাড়ছে, তবে এখনও পর্যন্ত মূল কাজটি সমাধান করা হয়নি। মানবতা এমন একটি প্রযুক্তি তৈরি করতে ব্যর্থ হয়েছে যা মানব মস্তিষ্কের ক্ষমতার আরও কাছাকাছি। আসুন মানব মস্তিষ্ক এবং কৃত্রিম নিউরাল নেটওয়ার্কগুলির মধ্যে প্রধান পার্থক্যগুলি একবার দেখে নিই।
নিউরাল নেটওয়ার্কগুলি এখনও মানুষের মস্তিষ্ক থেকে দূরে কেন?
সর্বাধিক গুরুত্বপূর্ণ পার্থক্য, যা মূলত সিস্টেমের নীতি এবং দক্ষতা পরিবর্তন করে, হ'ল কৃত্রিম নিউরাল নেটওয়ার্কগুলিতে এবং নিউরনের জৈবিক নেটওয়ার্কে বিভিন্ন সংকেত সংক্রমণ। আসল বিষয়টি হ'ল এএনএন-তে, নিউরনগুলি এমন মানগুলি প্রেরণ করে যা আসল মান, যা সংখ্যা। মানব মস্তিষ্কে, একটি নির্দিষ্ট প্রশস্ততা সহ প্রেরণগুলি সংক্রমণিত হয় এবং এই প্রবণতাগুলি প্রায় তাত্ক্ষণিক হয়। সুতরাং, নিউরনের মানব নেটওয়ার্কের অনেকগুলি সুবিধা রয়েছে।
প্রথমত, মস্তিষ্কে যোগাযোগ লাইনগুলি এএনএনগুলির তুলনায় অনেক বেশি দক্ষ এবং অর্থনৈতিক। দ্বিতীয়ত, আবেগ সার্কিট প্রযুক্তি বাস্তবায়নের সরলতার বিষয়টি নিশ্চিত করে: জটিল কম্পিউটেশনাল ব্যবস্থার পরিবর্তে এনালগ সার্কিট ব্যবহার করা যথেষ্ট। শেষ পর্যন্ত, ইমপুলস নেটওয়ার্কগুলি শাব্দিক হস্তক্ষেপ থেকে সুরক্ষিত। কার্যকর সংখ্যা শব্দের সাপেক্ষে ত্রুটির সম্ভাবনা বাড়ায়।
নিউরাল নেটওয়ার্কগুলির জন্য সম্ভাবনা
লুডাইট আন্দোলন 19 শতকের গোড়ার দিকে শুরু হয়েছিল। এই শব্দটি নগরায়নের বিরুদ্ধে প্রতিবাদে অংশ নেওয়া লোকদের বর্ণনা করতে ব্যবহৃত হয়েছিল। সমাজের শিল্পায়নের সাথে সাথে, যখন যন্ত্রের সরঞ্জামগুলি ধীরে ধীরে শ্রমিকদের প্রতিস্থাপন করতে শুরু করেছিল, তখন অনেক লোক কাজ থেকে বঞ্চিত হয়ে পড়েছিল এবং তাদের পরিস্থিতি নিয়ে চরম অসন্তুষ্ট ছিল। তারা কল্পনা করুন যে তারা কয়েকশ বছরের মধ্যে মেশিনগুলি কথা বলতে এবং এমনকি স্বাধীনভাবে স্থানান্তর করতে সক্ষম হবে তা শিখলে তারা কী ধাক্কা খেয়েছিল!
এদিকে, এই সময়গুলি এসে গেছে এবং আজ এমন প্রত্যাহাররাও আছেন যারা ভয় পান যে রোবোটিক্স এবং সাধারণভাবে প্রযুক্তির বিকাশ মানুষের সাথে নিষ্ঠুর রসিকতা করতে পারে। সর্বোপরি, যদি মেশিনগুলি আজই ইতিমধ্যে এতগুলি কার্য সম্পাদন করতে সক্ষম হয়, ভবিষ্যতে তারা সমস্ত কাজ দখল করবে, মানুষকে অপ্রয়োজনীয় করে তুলবে। এবং এই অবস্থানটি কেবল বিশেষজ্ঞদের মূল্যায়ণ দ্বারা নিশ্চিত করা হয়েছে যারা এখন এবং পরে কোনও নির্দিষ্ট পেশার আসন্ন অন্তর্ধানের পূর্বাভাস দিয়েছেন।
এই অবস্থানের অস্তিত্বের অধিকার রয়েছে, তবে এটি পুরোপুরি সঠিক নয়, সময়ের সাথে সাথে কেবল পুরানো পেশাগুলিই অদৃশ্য হয়ে যায় না, তবে নতুনগুলিও উপস্থিত হয়। হ্যাঁ, পূর্বের চেয়ে আরও বেশি রাখাল এবং শিকারিদের অর্ডার রয়েছে তবে প্রোগ্রামার এবং বিপণনকারীরা উপস্থিত হয়েছেন। ইতিহাসের মোড় নেওয়ার সময়, অর্থনীতি নিজেকে পুনরায় প্রেরণা করে, অযৌক্তিকতা ছড়িয়ে দেয় এবং উদারতার সাথে চাহিদা অনুযায়ী স্থায়ী হয়।
কৃত্রিম নিউরাল নেটওয়ার্কগুলির ক্রমবর্ধমান প্রভাব সুস্পষ্ট, এবং সম্ভবত যে শীঘ্রই তারা আক্ষরিক অর্থে সমস্ত জায়গায় উপস্থিত হবে, তবে এর থেকে ভয় পাওয়ার অর্থ হ'ল মানব প্রকৃতি নিজেই প্রত্যাখ্যান, যা আবিষ্কার এবং অর্জনের আকাঙ্ক্ষায় অন্তর্ভুক্ত।
নিউরাল ব্লক তৈরি
প্রথমত, আপনাকে সিদ্ধান্ত নিতে হবে যে স্নায়ুবিক নেটওয়ার্কের মূল উপাদানগুলি – নিউরনগুলি কী । নিউরন ইনপুট ডেটা নেয়, এটির সাথে নির্দিষ্ট গাণিতিক ক্রিয়াকলাপ সম্পাদন করে এবং তারপরে ফলাফলটি আউটপুট করে। দুটি ইনপুট যুক্ত নিউরন দেখতে দেখতে এটি:
তিনটি জিনিস এখানে ঘটছে। প্রথমত, প্রতিটি ইনপুট তার ওজন দিয়ে অঙ্কিত হয় (ডায়াগ্রামে লাল রঙে দেখানো হয়েছে ):
তারপরে সমস্ত ভারী ইনপুটগুলি অফসেটের সাথে একত্রে যুক্ত করা হয় b(চিত্রের সবুজ রঙে নির্দেশিত ):
অবশেষে, পরিমাণটি অ্যাক্টিভেশন ফাংশনের মাধ্যমে স্থানান্তরিত হয় (চিত্রটিতে হলুদ বর্ণিত ):
অ্যাক্টিভেশন ফাংশনটি এমন একটি আউটপুটে যা অপেক্ষাকৃত সহজ এবং অনুমানযোগ্য আকারের সাথে সম্পর্কযুক্ত ইনপুটগুলিকে সংযুক্ত করতে ব্যবহৃত হয়। একটি নিয়ম হিসাবে, সিগময়েড ফাংশন ব্যবহৃত অ্যাক্টিভেশন ফাংশন হিসাবে নেওয়া হয় :
সিগময়েড ফাংশনটি কেবল একটি ব্যাপ্তিতে সংখ্যা আউটপুট করে (0, 1)। আপনি এটি থেকে সংকোচনের হিসাবে ভাবতে (−∞, +∞)পারেন (0, 1)। বড় নেতিবাচক সংখ্যা হয়ে ওঠে ~0এবং বড় ধনাত্মক সংখ্যা হয়ে যায় ~1।
পাইথনে নিউরনের সাথে কাজ করার একটি সহজ উদাহরণ
ধরুন আমাদের কাছে দুটি ইনপুট যুক্ত নিউরন রয়েছে যা সিগময়েড অ্যাক্টিভেশন ফাংশন ব্যবহার করে এবং নিম্নলিখিত প্যারামিটারগুলি রয়েছে:
w = [0,1]``w1 = 0, w2 = 1ভেক্টর আকারে লেখার একমাত্র উপায় । নিউরনের একটি মান সহ একটি ইনপুট বরাদ্দ করা যাক x = [2, 3]। আরও কমপ্যাক্ট উপস্থাপনার জন্য, বিন্দু পণ্য ব্যবহার করা হবে ।
ইনপুটটি দেওয়া x = [2, 3]হওয়ায় আউটপুট সমান হবে 0.999। এখানেই শেষ. আউটপুট পাওয়ার জন্য ইনপুট ডেটা পাস করার এই প্রক্রিয়াটিকে ফিডফোর্ড বলা হয়।
পাইথনে স্ক্র্যাচ থেকে নিউরন তৈরি করা
নিউরন বাস্তবায়ন শুরু করা যাক। এটির জন্য NumPy ব্যবহারের প্রয়োজন হবে। এটি একটি শক্তিশালী গণনা পাইথন গ্রন্থাগার যা গাণিতিক ক্রিয়াকলাপগুলি ব্যবহার করে:
|
এক ঘ ঘ চার পাঁচ । 7 আট নয়টি 10 এগার 12 13 চৌদ্দ পনের ষোল 17 আঠার উনিশ বিশ 21 22 23 24 25 26 27 |
আমদানি numpy যেমন NP ডিফ সিগময়েড ( এক্স ) : # আমাদের অ্যাক্টিভেশন ফাংশন: চ (এক্স) = 1 / (1 + ই ^ (- এক্স)) প্রত্যাবর্তন 1 / ( 1 + এনপি । এক্সপ্রেস ( – এক্স ) ) ক্লাস নিউরন : Def __init__ ( স্ব , ওজন , পক্ষপাত ) : স্ব । ওজন = ওজন স্ব । পক্ষপাত = পক্ষপাত Def feedforward ( স্ব , ইনপুট ) : # ইনপুট ওজন ডেটা, অফসেট যুক্ত করুন অ্যাক্টিভেশন ফাংশনটির # এবং পরবর্তী ব্যবহার মোট = এনপি । বিন্দু ( স্ব । ওজন , ইনপুট ) + স্ব । পক্ষপাত রিটার্ন সিগময়েড ( মোট ) ওজন = এনপি । অ্যারে ( [ 0 , 1 ] ) # ডাব্লু 1 = 0, ডাব্লু 2 = 1 পক্ষপাত = 4 # বি = 4 n = নিউরন ( ওজন , পক্ষপাত ) x = এনপি । অ্যারে ( [ 2 , 3 ] ) # x1 = 2, এক্স 2 = 3 মুদ্রণ ( এন । ফিডফওয়ার্ড ( এক্স ) ) # 0.9990889488055994 |
আপনি সংখ্যাগুলি চিনতে পারেন? এটি পূর্বে আলোচিত একই উদাহরণ। এবার প্রাপ্ত উত্তরও সমান 0.999।
নিউরন নেটওয়ার্কে নিউরন সংগ্রহের উদাহরণ
একটি নিউরাল নেটওয়ার্ক মূলত আন্তঃসংযুক্ত নিউরনের একটি গ্রুপ । একটি সাধারণ স্নায়বিক নেটওয়ার্ক এর মতো দেখাচ্ছে:
নেটওয়ার্কের সূচনা স্তরটিতে দুটি প্রবেশদ্বার রয়েছে – x1এবং x2। লুকানো স্তরে দুটি নিউট্রন রয়েছে – h1এবং h2। আউটপুট স্তরটিতে একটি নিউরন রয়েছে – о1। মনে রাখবেন এর ইনপুটগুলি о1আউটপুট ফলাফল h1এবং h2। এই কিভাবে স্নায়ুর নেটওয়ার্ক নির্মিত হয় ।
একটি লুকানো স্তর হ'ল ইনপুট স্তর এবং আউটপুট স্তরের মধ্যবর্তী যে কোনও স্তর যা যথাক্রমে প্রথম এবং শেষ স্তর হয়। বেশ কয়েকটি লুকানো স্তর থাকতে পারে।
নিউরাল নেটওয়ার্ক প্রশিক্ষণ
একটি সাধারণ দ্বি-স্তরের নিউরাল নেটওয়ার্কের আউটপুট :
উপরের সমীকরণে, ওয়েট W এবং বায়াসগুলি খ কেবলমাত্র আউটপুটকে প্রভাবিত করে vari
স্বাভাবিকভাবেই, ওজন এবং পক্ষপাতদুষ্টের জন্য সঠিক মানগুলি পূর্বাভাসের যথার্থতা নির্ধারণ করে। ইনপুট ডেটা থেকে সূক্ষ্ম-সুরকরণ ওজন এবং বায়াসগুলি প্রক্রিয়াটি নিউরাল নেটওয়ার্ক প্রশিক্ষণ হিসাবে পরিচিত।
প্রশিক্ষণ প্রক্রিয়া প্রতিটি পুনরাবৃত্তি নিম্নলিখিত পদক্ষেপ নিয়ে গঠিত
- ভবিষ্যদ্বাণী করা আউটপুট গণনা করা forward যাকে বলা হয় এগিয়ে প্রচার ation
- ওজন এবং বায়াসগুলি আপডেট করে ব্যাকপ্রোপেশন বলে
নীচের ক্রমযুক্ত গ্রাফটি প্রক্রিয়াটির চিত্র তুলে ধরেছে:
সরাসরি বিতরণ
আমরা উপরের গ্রাফে যেমন দেখেছি, ফরোয়ার্ড প্রচার কেবল একটি সাধারণ গণনা, এবং একটি বেসিক 2-স্তর নিউরাল নেটওয়ার্কের জন্য, নিউরাল নেটওয়ার্কের আউটপুট দ্বারা দেওয়া হয়:
এটি করার জন্য আমাদের পাইথন কোডটিতে ফিডফোর্ড যুক্ত করুন। নোট করুন যে সরলতার জন্য, আমরা ধরে নিয়েছি যে অফসেটগুলি 0 হয়।
যাইহোক, আমাদের পূর্বাভাসের “ধার্মিকতা”, অর্থাৎ আমাদের পূর্বাভাসটি কতদূর রয়েছে তা মূল্যায়নের জন্য আমাদের একটি উপায় প্রয়োজন। ক্ষতির ফাংশন আমাদের ঠিক তা করতে দেয়।
ক্ষতি ফাংশন
অনেক লোকসান ফাংশন উপলব্ধ রয়েছে এবং আমাদের সমস্যার প্রকৃতিতে আমাদের লোকসান ফাংশন পছন্দ পছন্দ করতে হবে। এই কাগজে, আমরা ক্ষতির ক্রিয়া হিসাবে ত্রুটির স্কোয়ারের যোগফলটি ব্যবহার করব ।
স্কোয়ারড ত্রুটির যোগফল প্রতিটি পূর্বাভাসিত মান এবং আসল মানের মধ্যে পার্থক্যের গড়।
প্রশিক্ষণের লক্ষ্য হ'ল ফাংশনকে হ্রাস করে এমন ওজন এবং বায়াসের একটি সেট সন্ধান করা।
পিছনে প্রচার
এখন যেহেতু আমরা আমাদের পূর্বাভাস ত্রুটি (লোকসান) পরিমাপ করেছি, ত্রুটিটি আবার প্রচার করার এবং আমাদের ওজন এবং বায়াসগুলি আপডেট করার জন্য আমাদের একটি উপায় খুঁজে বের করতে হবে।
ওজন এবং বায়াসগুলি ঠিক করার জন্য উপযুক্ত পরিমাণ খুঁজে বের করতে আমাদের ওজন এবং বায়াসগুলি সম্মানের সাথে ক্ষতির ক্রিয়াকলাপের ডেরাইভেটিভটি জানতে হবে।
বিশ্লেষণ থেকে মনে করুন যে কোনও ফাংশনের ডেরিভেটিভ হ'ল ফাংশনের opeালের স্পর্শক।
আমাদের যদি একটি ডেরাইভেটিভ থাকে তবে আমরা ওজন এবং বায়াসগুলি কেবলমাত্র বাড়িয়ে / কমিয়ে আপডেট করতে পারি (উপরের চিত্রটি দেখুন)। একে গ্রেডিয়েন্ট বংশোদ্ভূত বলা হয় ।
যাইহোক, আমরা ওজন এবং বায়াসগুলি সম্মানের সাথে ক্ষতির ক্রিয়াকলাপের ডেরাইভেটিভটিকে সরাসরি গণনা করতে পারি না, যেহেতু ক্ষতির ফাংশনের সমীকরণে ওজন এবং বায়াস থাকে না। অতএব, গণনায় সহায়তার জন্য আমাদের একটি চেইন রুল দরকার।
ফুহ! এটি জটিল ছিল, তবে এটি আমাদের যা প্রয়োজন তা পাওয়ার অনুমতি দেয় – ওজনকে সম্মানের সাথে লোকসানের কার্যকারিতা (opeাল) sl আমরা এখন সেই অনুযায়ী ওজন সামঞ্জস্য করতে পারি।
আসুন আমাদের পাইথন কোডটিতে ব্যাকপ্রপ্যাগেশন ফাংশন যুক্ত করি:
আংশিক অন্তরকলন
আংশিক ডেরাইভেটিভগুলি গণনা করা যায়, সুতরাং এটি জানা যায় যে প্রতিটি ওজনের ক্ষেত্রে ত্রুটির ক্ষেত্রে কী অবদান ছিল। ডেরিভেটিভসের প্রয়োজনীয়তা সুস্পষ্ট। একটি স্বায়ত্তশাসিত গাড়ির জন্য অনুকূল গতি সন্ধান করার চেষ্টা করছে এমন একটি নিউরাল নেটওয়ার্ক কল্পনা করুন। গাড়িটি যদি সনাক্ত করে যে এটি প্রয়োজনীয় গতির চেয়ে দ্রুত বা ধীর গতিতে চলেছে তবে নিউরাল নেটওয়ার্কটি গতি পরিবর্তন করবে, গাড়িটিকে ত্বরান্বিত করবে বা হ্রাস করবে। এক্ষেত্রে ত্বক / হ্রাসকারী কী? বেগ ডেরিভেটিভস।
আসুন একটি উদাহরণ ব্যবহার করে আংশিক ডেরিভেটিভগুলির প্রয়োজনীয়তাটি দেখুন।
ধরুন, বাচ্চাদের কেন্দ্রবিন্দু করে লক্ষ্য করে একটি ডার্ট ফেলে দিতে বলা হয়েছে। ফলাফল এখানে:
এখন, যদি আমরা একটি সাধারণ ত্রুটি খুঁজে পাই এবং এটিকে সমস্ত ওজন থেকে সহজভাবে বিয়োগ করি তবে আমরা প্রত্যেকের দ্বারা করা ভুলগুলি সংক্ষিপ্ত করব। সুতরাং, আসুন আমরা বলি যে শিশুটি খুব কম আঘাত করেছে, তবে আমরা সমস্ত বাচ্চাকে লক্ষ্যবস্তুতে আঘাত করার জন্য প্রচেষ্টা করতে বলি, তবে এটি নিম্নলিখিত ছবিতে নিয়ে যাবে:
বেশ কয়েকটি বাচ্চার ত্রুটি হ্রাস পেতে পারে তবে মোট ত্রুটি এখনও বাড়ছে।
আংশিক ডেরিভেটিভগুলি খুঁজে পেয়ে আমরা প্রতিটি ওজনের সাথে সম্পর্কিত ত্রুটিগুলি আলাদাভাবে খুঁজে পাই। আপনি যদি নির্বাচিতভাবে ওজনগুলি সংশোধন করেন তবে আপনি নিম্নলিখিতগুলি পেতে পারেন:
হাইপারপ্যারামিটার
একটি নিউরাল নেটওয়ার্ক বৈশিষ্ট্য নির্বাচন স্বয়ংক্রিয় করতে ব্যবহৃত হয়, তবে কিছু পরামিতি ম্যানুয়ালি কনফিগার করা হয়।
শিক্ষার হার
শেখার হার একটি খুব গুরুত্বপূর্ণ হাইপারপ্যারামিটার। যদি শেখার হার খুব কম হয়, তবে দীর্ঘ সময়ের জন্য নিউরাল নেটওয়ার্ক প্রশিক্ষণ দেওয়ার পরেও এটি সর্বোত্তম ফলাফল থেকে দূরে থাকবে। ফলাফলগুলি এরকম কিছু দেখবে:
অন্যদিকে, যদি শেখার হার খুব বেশি হয়, তবে নেটওয়ার্কটি খুব দ্রুত সাড়া দেবে। ফলাফল নিম্নলিখিত:
গভীর নিউরাল নেটওয়ার্ক
ডিপ লার্নিং হ'ল মেশিন লার্নিং অ্যালগরিদমগুলির একটি শ্রেণি যা ডেটা আরও গভীরভাবে বুঝতে (আরও বিমূর্তভাবে) বোঝে। গভীর শেখার স্নায়ুবিক নেটওয়ার্কগুলির জন্য জনপ্রিয় অ্যালগরিদমগুলি নীচের চিত্রটিতে উপস্থাপিত হয়েছে।
জনপ্রিয় নিউরাল নেটওয়ার্ক অ্যালগরিদম (http: //www.asimovinst متبادل.org/neural-network-zoo )
গভীরভাবে শেখার ক্ষেত্রে আরও আনুষ্ঠানিকভাবে:
- বৈশিষ্ট্যগুলি উত্তোলন ও রূপান্তর করতে প্রসেসিং লেয়ারের বহুবিধতা (ননলাইনার) একটি ক্যাসকেড (পাইপলাইন, ধারাবাহিকভাবে প্রবাহিত প্রবাহ হিসাবে) ব্যবহৃত হয়;
- তদারকি না করা ছাড়া ডেটাতে বৈশিষ্ট্যগুলি (তথ্য উপস্থাপনা) অধ্যয়নের ভিত্তিতে। উচ্চ-স্তরের ফাংশন (যা শেষ স্তরগুলিতে থাকে) নিম্ন স্তরের ফাংশনগুলি (যা প্রাথমিক স্তরগুলির স্তরগুলিতে থাকে) থেকে প্রাপ্ত হয়;
- স্তরযুক্ত দর্শনগুলি আবিষ্কার করে যা বিমূর্তির বিভিন্ন স্তরের সাথে সামঞ্জস্য করে; স্তরগুলি একটি উপস্থাপনা স্তরক্রম গঠন করে।
এক্সওআর ফাংশনগুলি ব্যবহার করে নিউরাল নেটওয়ার্কটি প্রশিক্ষণ দিন
এক্সওআর কার্যক্রমটি এত আকর্ষণীয় কেন? কেবলমাত্র এটি একটি নিউরন দ্বারা প্রাপ্ত করা যায় না: 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0. তবে, এটি নিউরনের সংখ্যা বাড়িয়ে সহজেই পাওয়া যায়। আমরা লুকানো স্তর এবং 1 আউটপুটে 3 টি নিউরন সহ একটি নেটওয়ার্ক প্রশিক্ষণের চেষ্টা করব (যেহেতু আমাদের কেবলমাত্র একটি আউটপুট রয়েছে)। এটি করার জন্য, আমাদের প্রশিক্ষণের ডেটা এবং নিউরাল নেটওয়ার্ক নিজেই এক্স এবং ওয়াই ভেক্টরগুলির একটি অ্যারে তৈরি করতে হবে:
// массив входных обучающих векторов Vector[] X = { new Vector(0, 0), new Vector(0, 1), new Vector(1, 0), new Vector(1, 1) }; // массив выходных обучающих векторов Vector[] Y = { new Vector(0.0), // 0 ^ 0 = 0 new Vector(1.0), // 0 ^ 1 = 1 new Vector(1.0), // 1 ^ 0 = 1 new Vector(0.0) // 1 ^ 1 = 0 }; Network network = new Network(new int[]{2, 3, 1}); // создаём сеть с двумя входами, тремя нейронами в скрытом слое и одним выходом
তারপরে আমরা নিম্নোক্ত প্যারামিটারগুলি দিয়ে প্রশিক্ষণ শুরু করি: শেখার হার – 0.5%, যুগের সংখ্যা – 100000, ত্রুটির মান – 1e-7:
network.Train(X, Y, 0.5, 1e-7, 100000); // запускаем обучение сети
প্রশিক্ষণের পরে, আসুন সমস্ত উপাদানগুলির জন্য সরাসরি পাস করে ফলাফলগুলি দেখুন:
for (int i = 0; i























