• নিউরাল নেটওয়ার্ক কি ?শুরুর গাইড

     নিউরাল নেটওয়ার্ক কি ? শুরুর গাইড
    এই পোস্টে আমি কীভাবে তাত্ক্ষণিকভাবে একটি নিউরাল নেটওয়ার্ক মডেল তৈরি করতে এবং সাথে শুরু করার বিষয়ে আলোচনা করতে যাচ্ছি।

    • প্রাথমিক সেটআপ
    আমরা Keras" নামে একটি পাইথন লাইব্রেরি ব্যবহার করতে যাচ্ছি যা নিউরাল নেটওয়ার্ক লাইব্রেরি theano  theano/tensorfow” এর জন্য মোড়কের ক্লাস। এই টিউটোরিয়ালে আমরা কেরাসের ব্যাকএন্ড লাইব্রেরি হিসাবে থিয়ানো ব্যবহার করতে যাচ্ছি, যাWin/Linux/Mac কের জন্য  যাতে প্রত্যেকে অনুসরণ করতে পারে।

    Lets set it up

    Open your terminal (cmd for windows), and type “pip install theano”  install the theano python package, and then hit “pip install keras”  and now we have all the packages we need for this tutorial
    কিছু বিষয় যাচাই করার জন্য
    অগ্রসর হওয়ার আগে আমাদের নিশ্চিত করতে হবে যে কেরারা প্রকৃতপক্ষে থিয়ানোকে ব্যাক-এন্ড টেনসরফ্লো হিসাবে ব্যবহার করার চেষ্টা করছে না কারণ আমরা কেবল থিয়ানো ইনস্টল করেছি
    আমাদের উপস্থিত একটি ফাইল যাচাই করতে হবে তা পরীক্ষা করতে
    /.keras/keras.json
    উইন্ডো ব্যবহারকারীর জন্য \"। কেরাস\" ফোল্ডারটি দৃশ্যমান এবং সরাসরি উইন্ডোজ এক্সপ্লোরার ব্যবহার করে খোলা যেতে পারে
    লিনাক্স / ম্যাক ব্যবহারকারীর জন্য টার্মিনাল ব্যবহার করে ফাইলটি \"ন্যানো। “nano ~/.keras/keras.json”    খুলুন এটি সরাসরি ন্যানো সম্পাদক ব্যবহার করে টার্মিনালে ফাইলটি খুলবে।
    ফাইলটি নিম্নলিখিত দেখাচ্ছে কিনা তা নিশ্চিত করুন
    {
    "image_dim_ordering": "th",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "theano"
    }
    সেটআপের জন্য এটিই। আমরা এখন আমাদের খুব won থাকা নিউরাল নেটওয়ার্কের কোডিং শুরু করতে পারি।
    • প্রথম ডিজাইন
    প্রথমে নেটওয়ার্কটির আমাদের নকশা সম্পর্কে কথা বলা যাক, এই টিউটোরিয়ালে আমরা জিনিসগুলি আরও সহজ রাখতে যাচ্ছি। সুতরাং আমরা একটি সুপার সিম্পল ডিজাইন তৈরি করছি, আমরা আমাদের পরবর্তী টিউটোরিয়ালে আরও জটিল ডিজাইন তৈরি করব। আমরা কী করতে যাচ্ছি তার সম্পর্কে কিছুটা উপলব্ধি করা ভাল  নকশাটি নীচের চিত্রের মতো দেখায়।
    
    
    Neural Network design
    আপনি দেখতে পাচ্ছেন যে আমরা 3 স্তর রাখতে যাচ্ছি প্রথম একটিকে ইনপুট স্তর এবং শেষটিকে আউটপুট স্তর বলা হয়। এর মধ্যে যেটিকে কখনও লুকানো স্তর (গুলি) বলা হয়। এক্ষেত্রে আমরা 2 ইনপুট নিউরন এবং 5 টি নিউরন সহ একটি লুকানো স্তর এবং আউটপুট স্তরে 1 আউটপুট নিউরন দিয়ে ইনপুট স্তর তৈরি করতে যাচ্ছি।

    [ictt-tweet-blockquote]Lets Code A Neural Network[/ictt-tweet-blockquote]

    কেরাস লাইব্রেরি আমদানির মাধ্যমে আমরা শুরু করব। নেটওয়ার্কটি তৈরি করতে তার দুটি মডিউল প্রয়োজন, প্রথমটি মডেল যা নেটওয়ার্ক কাঠামো ধারণ করবে, আমরা ব্যবহার করব 'সিকোয়েনশিয়াল' যা সবচেয়ে সাধারণ। এবং 'স্তর' যা নেটওয়ার্কের বিল্ডিং ব্লক হবে। এই সাধারণ টিউটোরিয়ালে আমরা ঘন স্তরটি ব্যবহার করতে যা যা প্রাথমিক স্তর যা আমরা ডায়াগ্রামে আগে আলোচনা করেছি। এবং আমাদেরও numpay দরকার।
    from keras.models import Sequential
    from keras.layers import Dense
    import numpy as np
    সুতরাং এটির মতো দেখাচ্ছে,  মডেল নির্ধারণ করতে
    এখন যেহেতু আমাদের সমস্ত উপাদান রয়েছে, আমাদের নকশা বিভাগে আলোচিত মডেল কাঠামোটি সংজ্ঞায়িত করতে হবে।

    আমাদের সাথে একটি ইনপুট স্তর থাকবে একটি লুকানো স্তর এবং একটি আউটপুট স্তর, সুতরাং এটি দেখতে এটির মতো দেখাচ্ছে।
    model = Sequential()
    উপরের কোডে আমরা প্রথমে একটি সিক্যুয়াল মডেলকে সূচনা করেছিলাম, যাকে \"মডেল\" বলা হয়, এখন আমাদের কেবল একটি স্যান্ডউইচের লেয়ারের মতো স্তরগুলি সংযুক্ত করতে হবে, আমরা প্রথম লুকানো স্তর যুক্ত করে শুরু করি এবং সেখানে আমরা ইনপুট নিউরনের সংখ্যা এবং সংখ্যার সংজ্ঞাও দেই স্তর মধ্যে নিউরন
    model.add(Dense(5, input_dim=2, activation='tanh'))
    আমাদের ইনপুট স্তর তৈরি করতে হবে না, মডেল এটি স্বয়ংক্রিয়ভাবে তৈরি করবে  সুতরাং আমরা প্রথম লুকানো স্তর দিয়ে শুরু করি। এটি একটি ঘন স্তর এবং আমাদের কেবল ইনপুট স্তরের ইনপুট মাত্রা (ইনপুট নিউরনের সংখ্যা) নির্দিষ্ট করতে হবে। লুকানো স্তরটিতে নিজেই 5 টি নিউরন থাকে এবং প্রতিটি স্তরের জন্য আমাদের একটি অ্যাক্টিভেশন ফাংশন প্রয়োজন (আরও বিশদ পর্যালোচনা করার জন্য আমার স্নায়ু থেকে নেটওয়ার্কটি পরীক্ষা করে দেখুন), আমরা অ্যাক্টিভেশন ফাংশন হিসাবে ‘tanh’‘তানহ’ ফাংশনটি ব্যবহার করছি।
    এখন আমরা আউটপুট স্তর যুক্ত করব। এটি ইনপুট মাত্রা সম্পর্কে চিন্তা করার দরকার নেই কারণ এটি ক্রমের প্রথম স্তর নয়। এবং এটি আউটপুট স্তর এবং অ্যাক্টিভেশন ফাংশন হিসাবে \"তান\" সহ একটি মাত্র আউটপুট ধারণ করে।So the Model will look like this
    model = Sequential()
    model.add(Dense(5, input_dim=2, activation='tanh'))
    model.add(Dense(1, activation='tanh'))

    Compile The Model

    মডেলটি compile করে আমি কী বোঝাতে চাইছি। প্রকৃতপক্ষে উপরের পদক্ষেপগুলিতে আমরা কেবলমাত্র মডেলের কাঠামো সংজ্ঞায়িত করেছি। এরপরে আমরা সেই মডেলটি compile করব যেখানে আমাদের দেওয়া নির্দেশনা অনুযায়ী লাইব্রেরিটি প্রকৃতপক্ষে নেটওয়ার্কটি তৈরি করবে, যতটা সম্ভব অপ্টিমাইজড ফর্ম.
    # Compile model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

    Lets Create the Dataset

    এই টিউটোরিয়ালে আমরা নিউরাল নেটওয়ার্ককে একটি XOR এক্সওআর গেটের মতো আচরণ করতে প্রশিক্ষণ দেব যাতে আমাদের ডেটাসেটে 2 বাইনারি ইনপুট বিট এবং 1 বাইনারি আউটপুট বিট থাকবে
    • 1,1 -> 0
    • 1,0 -> 1
    • 0,1 -> 1
    • 0,0 -> 0
    উপরে ইনপুট এবং আউটপুট সেট রয়েছে। আমাদের মডেল বুঝতে পারে এমন ডেটা আকারে তাদের প্রস্তুত করতে দিন,

    সুতরাং আমাদের নিম্নোক্ত বিন্যাসে আমাদের ডেটাসেটের মাত্রা তৈরি করতে হবে

    ইনপুট আকার = (মোট নমুনার সংখ্যা, ইনপুটগুলির সংখ্যা)
    আউটপুট আকৃতি = (মোট নমুনার সংখ্যা, আউটপুট সংখ্যা)
    • input shape =(number of total samples, number of inputs )
    • output shape =(number of total samples, number of outputs )
    which is in our case it will be যা আমাদের ক্ষেত্রে এটি হবে
    • input shape= (4,2)
    • output shape= (4,1)
    কোডটি এর মতো দেখবে
    # Preparing Inputs 
    input=[]
    input.append([0,0])
    input.append([0,1])
    input.append([1,0])
    input.append([1,1])
    
    #converting Input variable from list to numpy array
    input=np.asarray(input)
    
    #Preparing corresponding Outputs
    output=[]
    output.append([0])
    output.append([1])
    output.append([1])
    output.append([0])
    
    #Converting list to numpy array
    
    output=np.asarray(output)
    মডেল প্রশিক্ষণ
    এখন যেহেতু আমরা প্রশিক্ষণের সেট প্রস্তুত করেছি, আমরা মডেলটিকে প্রশিক্ষণ দিতে শুরু করতে পারি
    model.fit(input,output,shuffle=True, nb_epoch=200, batch_size=4)
    উপরের কোডটিতে “nb_epoch”   নির্দেশ করে যে আমরা মোট সেটটি আবার কতবার চালাতে চাইছি,  “batch_size”  একটি শটে প্রশিক্ষণের জন্য নমুনার সংখ্যা। বাকি পরামিতিগুলি স্ব-ব্যাখ্যামূলক। এখন আমরা ফলাফল পরীক্ষা করতে পারেন।
    • মডেলকে পরীক্ষা


    আমরা মডেলকে প্রশিক্ষণ দিয়েছি, সুতরাং এটি পরীক্ষা করার সময় এসেছে,
    #Testing with input 1,1 / Expected Output  is 0
    input=[[1,1]]
    input=np.asarray(input)
    output=model.predict(input)
    print output[0]

    [ictt-tweet-blockquote]Complete Neural Network Code[/ictt-tweet-blockquote]

    নীচে এই টিউটোরিয়ালের সম্পূর্ণ কোডটি দেওয়া হয়েছে, মজা করুন এবং দয়া করে মন্তব্য করুন যদি আপনার কোনও সন্দেহ থাকে তবে আমি উত্তর দিতে খুশি হব।
    from keras.models import Sequential 
    from keras.layers import Dense 
    import numpy as np
    
    model = Sequential()
    model.add(Dense(5, input_dim=2, activation='tanh'))
    model.add(Dense(1, activation='tanh'))
    
    # Compile model 
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    # Preparing Inputs 
    inputSet=[] 
    inputSet.append([0,0]) 
    inputSet.append([0,1]) 
    inputSet.append([1,0]) 
    inputSet.append([1,1]) 
    
    #converting Input variable from list to numpy array 
    inputSet=np.asarray(inputSet) 
    
    #Preparing corresponding Outputs 
    output=[] 
    output.append([0]) 
    output.append([1]) 
    output.append([1]) 
    output.append([0]) 
    
    #Converting list to numpy array 
    output=np.asarray(output)
    
    #training the model
    model.fit(inputSet,output,shuffle=True, nb_epoch=200, batch_size=4)
    
    #Testing with input 1,1 / Expected Output is 0 
    inputSet=[[1,1]] 
    inputSet=np.asarray(inputSet) 
    output=model.predict(inputSet) 
    print "Output of 1,1"
    print (output[0]);

    Output

    neural network output

    আপনি দেখতে পাচ্ছেন আউটপুট -0.00012 যা 0 এর খুব কাছাকাছি হয় তাই এটি মোটামুটি গ্রহণযোগ্য।
  • 0 comments:

    Post a Comment

    New Research

    Attention Mechanism Based Multi Feature Fusion Forest for Hyperspectral Image Classification.

    CBS-GAN: A Band Selection Based Generative Adversarial Net for Hyperspectral Sample Generation.

    Multi-feature Fusion based Deep Forest for Hyperspectral Image Classification.

    ADDRESS

    388 Lumo Rd, Hongshan, Wuhan, Hubei, China

    EMAIL

    contact-m.zamanb@yahoo.com
    mostofa.zaman@cug.edu.cn

    TELEPHONE

    #
    #

    MOBILE

    +8615527370302,
    +8807171546477