Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

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

এখান থেকে শুরু করুন [START](https://github.com/BanglaProgramming/Deep-Learning-of-Machine-Language/blob/master/SUMMARY.md)
এখান থেকে শুরু করুন [START](/SUMMARY.md)

**ওপেন সোর্স**

Expand Down
5 changes: 3 additions & 2 deletions SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Summary

* [পরিচিতি](README.md)
<!-- * [পরিচিতি](README.md) -->
* [মেশিন লার্নিং বনাম ডিপ লার্নিং](ml-vs-dl.md)
* [আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক](artificial-nn.md)
* [সহজ একটি নিউরাল নেটওয়ার্ক](simple-nn.md)
Expand Down Expand Up @@ -33,4 +33,5 @@
* [Inception মডেল](to-do.md)
* [ট্রান্সফার লার্নিং](to-do.md)
* [ডিপ ড্রিম](to-do.md)
* [রি-ইনফোর্সমেন্ট লার্নিং](to-do.md)
* [রি-ইনফোর্সমেন্ট লার্নিং](to-do.md)
*
6 changes: 5 additions & 1 deletion artificial-nn.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
[Topics](/SUMMARY.md)

## আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক কি?

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

**ভিত্তি**
তো আমরা যদি একটু দুঃসাহস করে সত্যিকারের একটা নিউরনের কার্যনীতি দেখি তাহলে আমরা জানতে পারি যে – একটা নিউরনের কিছু ইনপুট দরকার এবং সেই ইনপুট গুলো আসে Dendrite নামের কিছু ডাল পালার মত অংশ দিয়ে, এরপর নিউরন বডি বা Soma নামের অংশে কিছু ক্যালকুলেশন হয় সেই ইনপুট গুলোর উপর। অতঃপর Axon নামের লেজের মত একটা অংশ দিয়ে সেই ক্যালকুলেশনের আউটপুট বের হয় যা কিনা আবার অন্য এক বা একাধিক নিউরনের ইনপুট স্লট তথা Dendrite এ চলে যায়। একটি নিউরনের এক্সন এবং অন্য নিউরনের ডেন্ড্রাইটের মাঝে Synapse নামের কিছু তরল থাকে। এটাই বস্তুত এক নিউরন থেকে আরেক নিউরনের কাছে এক্সনের আউটপুট কে ডেন্ড্ররাইটে ইনপুট দেয়ার ক্ষেত্রে ট্রান্সমিশনের ভূমিকা রাখে। যদি একটি নিউরনের যথেষ্ট পরিমাণ সিন্যাপ্টিক ইনপুট ফায়ার (আশানুরূপ একটা ভ্যালু তৈরি করে) করে তাহলে সেই নিউরনটা ফায়ার করে বা বলা যেতে পারে যে, সেই নিউরনটা অ্যাকটিভ হয়। বিষয় হচ্ছে – এই ঘটনাকেই চিন্তা করা বলে।
তো আমরা যদি একটু দুঃসাহস করে সত্যিকারের একটা নিউরনের কার্যনীতি দেখি তাহলে আমরা জানতে পারি যে – একটা নিউরনের কিছু ইনপুট দরকার এবং সেই ইনপুট গুলো আসে Dendrite নামের কিছু ডাল পালার মত অংশ দিয়ে, এরপর নিউরন বডি বা Soma নামের অংশে কিছু ক্যালকুলেশন হয় সেই ইনপুট গুলোর উপর। অতঃপর Axon নামের লেজের মত একটা অংশ দিয়ে সেই ক্যালকুলেশনের আউটপুট বের হয় যা কিনা আবার অন্য এক বা একাধিক নিউরনের ইনপুট স্লট তথা Dendrite এ চলে যায়। একটি নিউরনের এক্সন এবং অন্য নিউরনের ডেন্ড্রাইটের মাঝে Synapse নামের কিছু তরল থাকে। এটাই বস্তুত এক নিউরন থেকে আরেক নিউরনের কাছে এক্সনের আউটপুট কে ডেন্ড্ররাইটে ইনপুট দেয়ার ক্ষেত্রে ট্রান্সমিশনের ভূমিকা রাখে। যদি একটি নিউরনের যথেষ্ট পরিমাণ সিন্যাপ্টিক ইনপুট ফায়ার (আশানুরূপ একটা ভ্যালু তৈরি করে) করে তাহলে সেই নিউরনটা ফায়ার করে বা বলা যেতে পারে যে, সেই নিউরনটা অ্যাকটিভ হয়। বিষয় হচ্ছে – এই ঘটনাকেই চিন্তা করা বলে।

[Next : সহজ একটি নিউরাল নেটওয়ার্ক](simple-nn.md)
7 changes: 6 additions & 1 deletion cnn-check.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[Topics](/SUMMARY.md)

## পরীক্ষা করে দেখা যাক
আবার<span class="s1"> X </span>এর ফটো ইনপুট হিসেবে দিয়েই পরীক্ষা করি পুরো কনভলিউশনাল নিউরাল নেটওয়ার্ক আসলেই<span class="s1"> X  </span>কে চিনতে পারে কিনা।</p>
<p class="p1"><img class="aligncenter size-large wp-image-1756" src="https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-15-54-pm.png?w=687" alt="" width="687" height="378" /></p>
Expand All @@ -6,4 +8,7 @@
<p class="p1"><strong>বাস্তব জগতে<span class="s1"> CNN
</span></strong>অনেক তো খেলনা জগতের সমস্যা উদ্ধার করলাম আমরা। আসলেই রিয়েল লাইফ সিচুয়েশনে কিভাবে<span class="s1"> CNN </span>কাজ করে তার একটা ধারনা নেই এখন। কারন<span class="s1">, </span>বাস্তবে কম্পিউটারে লক্ষ্য লক্ষ্য পিক্সেল যেমন আছে তেমনি সব ফটো আমাদের আরাম দেয়ার জন্য<span class="s1"> 3x3 </span>পিক্সেল নিয়ে বসে নাই। কয়েক মেগা পিক্সেলের ইমেজ এখন সবার কাছেই। তাই আমাদের যেমন নিউরাল নেটওয়ার্ক ডিজাইন করতে হবে খুব বুদ্ধি করে<span class="s1">, </span>তেমনি কম্পিউটারকেও রেডি থাকতে হবে বিনা ইস্যুতে কোটি<span class="s1"><span class="Apple-converted-space"> </span></span>কোটি বার একই বোরিং হিশাব করতে আর লুপের উপর থাকতে।</p>
<p class="p1"><img class="aligncenter size-large wp-image-1757" src="https://nuhil.files.wordpress.com/2017/05/screen-shot-2015-11-07-at-7-26-20-am.png?w=687" alt="" width="687" height="187" /></p>
<p class="p1">উপরে একটা পূর্ণ<span class="s1"> CNN </span>এর ব্লক ডায়াগ্রাম দেখানো হয়েছে। প্রথমেই বাম পাশে একটি নৌকার ছবি ইনপুট দেয়া হচ্ছে এবং এই নেটওয়ার্কে দুই স্টেজে<span class="s1"> Convolution </span>এবং<span class="s1"> Pooling </span>এর কাজ করা হয়েছে<span class="s1"> (</span>প্রয়োজনে আরও হতে পারে<span class="s1">)</span>। তো<span class="s1">, </span>প্রথম কনভলিউশন এবং পুলিং এর সময় এই ফটো থেকে কিছু গুরুত্বপূর্ণ পিক্সেল গুচ্ছ বা অবজেক্টের অংশ বিশেষ আলাদা করে নিয়ে নেয়া সম্ভব হয়। আবারো<span class="s1">, </span>কনভলিউশন এবং পুলিং লেয়ারের সাহায্যে যতটা সম্ভব সিমপ্লিফ্যায়েড কিন্তু অর্থবহ ইমেজে নিয়ে আসা হয়। এরপর সেই লেয়ারের আউটপুট কে ফুলি কানেক্টেড এক বা একাধিক লেয়ারে ইনপুট হিসেবে দিয়ে সবার সাথে সবার গুন<span class="s1">/</span>যোগ করে স্কোর জেনারেট করা হয়। ভ্রমণটা ট্রেনিং টাইপের হলে স্কোর এবং আসল আউটপুট এর পার্থক্য দেখে চক্কর দিতে থাকে এরর কমানোর জন্য। আর ভ্রমণটা ট্রেনিং শেষে প্রেডিকশনের জন্য হলে<span class="s1">, </span>একটা স্কোর দিয়ে দেয় যার মাধ্যমে আমরা চিনতে পারি যে ফটোটা নৌকার।</p>
<p class="p1">উপরে একটা পূর্ণ<span class="s1"> CNN </span>এর ব্লক ডায়াগ্রাম দেখানো হয়েছে। প্রথমেই বাম পাশে একটি নৌকার ছবি ইনপুট দেয়া হচ্ছে এবং এই নেটওয়ার্কে দুই স্টেজে<span class="s1"> Convolution </span>এবং<span class="s1"> Pooling </span>এর কাজ করা হয়েছে<span class="s1"> (</span>প্রয়োজনে আরও হতে পারে<span class="s1">)</span>। তো<span class="s1">, </span>প্রথম কনভলিউশন এবং পুলিং এর সময় এই ফটো থেকে কিছু গুরুত্বপূর্ণ পিক্সেল গুচ্ছ বা অবজেক্টের অংশ বিশেষ আলাদা করে নিয়ে নেয়া সম্ভব হয়। আবারো<span class="s1">, </span>কনভলিউশন এবং পুলিং লেয়ারের সাহায্যে যতটা সম্ভব সিমপ্লিফ্যায়েড কিন্তু অর্থবহ ইমেজে নিয়ে আসা হয়। এরপর সেই লেয়ারের আউটপুট কে ফুলি কানেক্টেড এক বা একাধিক লেয়ারে ইনপুট হিসেবে দিয়ে সবার সাথে সবার গুন<span class="s1">/</span>যোগ করে স্কোর জেনারেট করা হয়। ভ্রমণটা ট্রেনিং টাইপের হলে স্কোর এবং আসল আউটপুট এর পার্থক্য দেখে চক্কর দিতে থাকে এরর কমানোর জন্য। আর ভ্রমণটা ট্রেনিং শেষে প্রেডিকশনের জন্য হলে<span class="s1">, </span>একটা স্কোর দিয়ে দেয় যার মাধ্যমে আমরা চিনতে পারি যে ফটোটা নৌকার।</p>


[Next : বিভিন্ন লাইব্রেরীর ব্যবহার](dl-libraries.md)
Loading