8-বিট মাইক্রোকন্ট্রোলারে নিউরাল নেটওয়ার্ক চালানো এবং প্রশিক্ষণ দেওয়া কি সম্ভব?


11

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

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

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

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


কিউরিওস, আপনি কি প্রতিটি সেন্সর / অ্যাকিউয়েটার নোডে বা কিছু (আধা) কেন্দ্রিয়ায়িত "মস্তিষ্ক" (তখন অবশ্যই 8-বিট নিষেধাজ্ঞার প্রয়োজনীয়তা প্রয়োগ করবেন না) তেমন কোনও নিউরাল নেটওয়ার্ক চালানোর পরিকল্পনা করছেন?
ঘনিমা

@ ঘনিমা যদি সম্ভব হয় তবে জটিলতার অতিরিক্ত স্তর বাঁচাতে আমি অ্যাকিউউটার নোডে এটি করতে চাই, যদিও আমি নিশ্চিত নই যে এটি সীমিত বাধা নিয়ে কাজ করবে কিনা।
Aurora0001

@ অররাও 10001 আপনার সাইটের নির্দিষ্ট নিয়ামকটি আপনার এনএনকে প্রশিক্ষণের জন্য উপযুক্ত নাও হতে পারে তবে এম্বেড থাকা কম্পিউটার-দর্শন বিশ্বে ঠিক তা করার জন্য সম্মিলিত প্রচেষ্টা রয়েছে। যদি আপনি এই জাতীয় কাজের জন্য উপযুক্ত কোনও আর্কিটেকচার সহ কোনও মাইক্রো-কন্ট্রোলার সন্ধানের চেষ্টা করছেন, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি কম্পিউটার-দৃষ্টি শিল্পের জন্য এই ধরণের হার্ডওয়্যার বিকাশকারী সংস্থাগুলির দিকে নজর দিন। আমি নিশ্চিত যে এর কিছুটিকে পুনরুত্পাদন এবং আপনার প্রয়োজনীয়তার সাথে খাপ খাইয়ে নেওয়া যেতে পারে। শুরু করার জন্য একটি ভাল জায়গা
grldsndrs

@grldsndrs চমত্কার, রেফারেন্সের জন্য ধন্যবাদ। এটি অতিরিক্ত উত্তর হিসাবে নির্দ্বিধায় নির্দ্বিধায় যদি আপনি মনে করেন যে এটি যথেষ্ট (আমি অবশ্যই এতে খুশি হব)
অরোরা 10001

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

উত্তর:


9

প্রথম কাগজ অনুসারে , দৌড়ানো কোনও সমস্যা নয়। এটাই ছিল উদ্দেশ্য। কেবলমাত্র সর্বোচ্চ ওজনের সীমাবদ্ধতা রয়েছে:

বর্তমানে এই মাইক্রোকন্ট্রোলারে এমবেড করা স্থাপত্যের সীমাবদ্ধতা কেবলমাত্র প্রয়োজনীয় ওজনের সংখ্যা দ্বারা সীমাবদ্ধ। নিউরাল নেটওয়ার্কটি বর্তমানে 256 ওজনের মধ্যে সীমাবদ্ধ। তবে বেশিরভাগ এম্বেড থাকা অ্যাপ্লিকেশনগুলির জন্য এই 256 ওজনের সিস্টেমটিকে সীমাবদ্ধ করা উচিত নয়।


প্রশিক্ষণের জন্য, যতক্ষণ না বর্ণিত বাস্তবায়নটি আমি বুঝতে পেরেছি, পিক নিয়ন্ত্রক একটি বাহ্যিক উত্স থেকে পরামিতিগুলি গ্রহণ করে।

নিউরাল নেটওয়ার্ক ফরোয়ার্ড গণনাগুলি এমনভাবে লিখিত হয় যাতে প্রতিটি নিউরনটি নেস্টেড লুপের একটি সিরিজে স্বতন্ত্রভাবে গণনা করা হয়। প্রতিটি লুপের জন্য গণনার সংখ্যা এবং প্রতিটি নোডের মানগুলি সবই মেমরিতে একটি সাধারণ অ্যারেতে সঞ্চিত থাকে।

[...]

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

আমি সন্দেহ করি যে বাহ্যিকভাবেও প্রশিক্ষণটি সঞ্চালিত হয়।

কাগজটি নিউরাল নেটওয়ার্ক ট্রেনারদের জন্য রেফারেন্সও দেয় যা সম্ভবত পিকের স্মৃতিতে প্রিগ্রামগ্রাম করা মানগুলি নির্ধারণের জন্য ব্যবহৃত হত।

এখন, আমি প্রথমটি দেখেছি যা তাদের সাথে ব্যবহার করার জন্য নেটওয়ার্ক আর্কিটেকচার এবং অ্যালগরিদমগুলি বর্ণনা করে। তবে এখানে ব্যবহৃত নিউরাল নেটওয়ার্ক ট্রেনার সফটওয়্যারটি ম্যাটল্যাবে প্রয়োগ করা হয়েছে।

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

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

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


একটি মাইক্রোকন্ট্রোলারে নিউরাল নেটওয়ার্ক চালানোর বিষয়ে, এসটি মাইক্রো ইলেক্ট্রনিক্স কেবলমাত্র একটি সরঞ্জামকিট এসটিএম 32 কিউব ঘোষণা করেছে : এএইচএম 32 এর জন্য প্রাক-প্রশিক্ষিত নিউরাল নেটওয়ার্কগুলি তাদের বেশিরভাগ এসটিএম 32 এমসিইউতে রূপান্তর করতে এসটিএম 32 এর জন্য অপ্টিমাইজড কোডে রূপান্তর করুন ।

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