একটি কৃত্রিম নিউরন নেটওয়ার্ক (এএনএন) একটি স্বেচ্ছাসেবী সংখ্যার ইনপুট এবং আউটপুট সহ


10

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

আমার প্রশ্ন জিজ্ঞাসা করার আগে আমি কিছু গুগল অনুসন্ধান করেছি এবং খুঁজে পেয়েছি যে আরএনএন আমার সমস্যাটিতে আমাকে সহায়তা করতে পারে। কিন্তু, সব উদাহরণ যা আমি পেয়েছি একরকম থাকে সংজ্ঞায়িত ইনপুট এবং আউটপুট নোড সংখ্যা।

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

আমার সমস্যা সম্পর্কে আরও বিশদ:

আমার দুটি ইনপুট তালিকা রয়েছে, যেখানে প্রথমটির দৈর্ঘ্য স্থির হয় এবং দুটি সমান হয় fe

in_1 = [2,2] 

তবে দ্বিতীয় তালিকার দৈর্ঘ্য নমনীয়, দৈর্ঘ্য তিন থেকে শুরু করে ইনফেকশন পর্যন্ত হতে পারে:

in_2 = [1,1,2,2]

অথবা

in_2 = [1,1,1,2,2,2,3,3,3]

এছাড়াও, ইনপুট তালিকা একে অপরের উপর নির্ভর করে on প্রথম তালিকা আউটপুট তালিকার মাত্রা দেখায়। সুতরাং যদি in_1 = [২,২], এর অর্থ আউটপুটে অবশ্যই [২,২] ফর্মটি পুনরায় আকার দেওয়ার সম্ভাবনা থাকতে হবে।

বর্তমানে, আমি দুটি ইনপুট তালিকা একটির মধ্যে একত্রিত করার চিন্তা করছি:

in = in_1 + in_2 = [2, 2, 1, 1, 2, 2]

অধিকন্তু, আউটপুটটির ইনপুট তালিকার সমান দৈর্ঘ্য রয়েছে , ফাই:

যদি ইনপুট তালিকাগুলি হয়:

in_1 = [2, 2]
in_2 = [1, 1, 2, 2]

আউটপুট হওয়া উচিত:

out = [1, 2, 1, 2]

যে কোনও ধারণা স্বাগত!

উত্তর:


6

উত্তর ইনপুট ভেক্টরের দৈর্ঘ্যের তাত্পর্য বা এটির উত্স কিভাবে নির্ভর করে।

তবে সবচেয়ে সহজ সমাধানটি হ'ল সাধারণত বৃহত্তম আকারের ইনপুটটি জানুন এবং সেটিকে ভেক্টরের সংখ্যা হিসাবে ব্যবহার করুন। যদি প্রদত্ত ইনপুটটির দৈর্ঘ্য কম থাকে তবে আপনি জিরো বা উপযুক্ত চিহ্ন সহ প্যাডিং করতে পারেন। সুতরাং [1, 2, 3] এবং [1, 2, 2, 3] ভেক্টর না রেখে আপনার [1, 2, 3, 0] এবং [1, 2, 2, 3] ভেক্টর থাকতে পারে।

একই আউটপুট জন্য আবেদন করতে পারেন। যদি আউটপুট প্রত্যাশিত হয় [1, 2, 1] এবং [1, 3, 4, 1] আপনি প্রথম আউটপুটকে [1, 2, 1, 0] হিসাবে বিবেচনা করতে পারেন

এটি কি শুধু হ্যাক নয়?

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


ঠিক আছে, এটি পরিষ্কার, আমি ইনপুটটির জন্য প্যাডিং করতে পারি। তবে, আউটপুট নোডগুলির আকার কীভাবে নির্ধারণ করবেন?
ধান

3

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


ওহ ধন্যবাদ! এটিকে আরও ভাল করে বোঝার জন্য আপনি কোনও শালীন টিউটোরিয়াল / উদাহরণ জানেন?
ধান

1
@ প্যাডি কিছু লিঙ্কের জন্য দুর্দান্ত- আরএনএন দেখুন দেখুন চর-আরএনএন বেশ মজাদার।
আর্থার ট্যাকা

2

প্রথম তালিকাটি বেশ পরিমাণে আগত (কেবলমাত্র একটি নির্দিষ্ট জ্যামিতির বর্ণনা দিচ্ছে) জেনেও আপনি প্রতিটি আলাদা আলাদা ইন- কনফিগারেশনের জন্য অনেকগুলি আলাদা, বিশেষায়িত এনএন তৈরি করার চেষ্টা করতে পারেন এবং নেটওয়ার্কটি খাওয়ানোর জন্য কেবল ইন 2 ব্যবহার করতে পারেন ।

সুতরাং in_1 বিভিন্ন নেটওয়ার্কগুলি চালনা করতে পারে ie

in_1=[1,1]? --> NN #1 (n1) --> (o1)
in_1=[2,1]? --> NN #2 (n1,n2) --> (o1,o2)
in_1=[2,2]? --> NN #3 (n1,n2,n3,n4) -> (o1,o2,o3,o4)

প্রথম ধাপে আপনি কনফিগারেশনটি নির্ধারণ করুন (যেমন ডিক তৈরি করা) এবং তারপরে সেই অনুযায়ী বিশেষ নেটওয়ার্কগুলিকে প্রশিক্ষণ / ফিড দিন feed


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