• মেশিন লার্নিং ম্যাথ : লিনিয়ার আলজেব্রা


    Equations written in chalk on a worn-out blackboard” by Roman Mager on Unsplash
    লিনিয়ার আলজেব্রা ছাড়া মেশিন লার্নিং চিন্তা করা অসম্ভব। মেশিন লার্নিং মডেল এ আমরা যেসব ইকুয়েশন ব্যবহার করি তার গাণিতিক ভিত্তি হলো এই লিনিয়ার আলজেব্রা।
    আজকে আমরা মেশিন লার্নিং এর চশমা পরে লিনিয়ার আলজেব্রার বেসিক কনসেপ্ট গুলো রিভিউ করবো।

    স্কেলার (Scalars / 0D Tensors)

    গণিতের ভাষায় স্কেলার বলতে কোনো ভেক্টর এর এলিমেন্ট গুলোকে বোঝায়। এটা একটা বাস্তব সংখ্যা, শুধু মান নির্দেশ করে, এর কোনো দিক নেই।
    কম্পিউটার এর ভাষায়, যে Tensor এ একটি মাত্র নাম্বার থাকে তাকে Scalar (বা Scalar Tensor বা 0-dimensional Tensor বা 0D Tensor) বলে। numpy এ যেকোনো float32 বা float64 নাম্বার-ই হলো Scalar Tensor .
    সহজ ভাষায়, Tensor হলো ডাটার কন্টেইনার। বেশিরভাগ সময়-ই তা Numerical ডাটা।
    >>> import numpy as np
    >>> x = np.array(20)
    >>> x
    array(20)
    >>> x.ndim
    0
    `ndim` attribute ব্যবহার করে আমার কোনো tensor এর কয়টি axes আছে তা জানতে পারি। axes কে rank ও বলা হয়ে থাকে। Scalar এর ক্ষেত্রে axes 0, তাই একে rank 0 tensor বলা হয়।

    ভেক্টর (Vectors or 1D Tensors)

    সহজ ভাবে বলতে গেলে, Number এর array -ই হলো vector বা 1D-Tensor.
    1D tensor এর exactly একটাই axis থাকে।
    >>> x = np.array([12, 3, 6, 14])
    >>> x
    array([12, 3, 6, 14])
    >>> x.ndim
    1
    এখানে, x ভেক্টরটিতে ৫টি এলিমেন্ট আছে। এর মানে, এটি একটি 5-dimensional vector.
    5D vector আর 5D tensor কিন্তু এক জিনিস না। 5d vector এর একটাই axis এবং সেই axis এ ৫টি dimenson আছে বা ৫টি এলিমেন্ট আছে।
    আর 5d tensor এর ক্ষেত্রে axes হবে ৫টা আর প্রতিটা axes এ একাধিক dimension বা element থাকতে পারে।

    মেট্রিক্স (Matrices or 2D Tensor)

    একই dimension এর vector গ্ৰুপ-ই হলো Matrix বা 2D tensor. যেহেতু 2D tensor কাজেই এর axes ২টি (row আর column).
    >>> x = np.array([[5, 78, 2, 34, 0],
                      [6, 79, 3, 35, 1],
                      [7, 80, 4, 36, 2]])
    >>> x.ndim
    2
    প্রথম axis এর এন্ট্রি গুলো হলো row আর দ্বিতীয় axis এর এন্ট্রি গুলো হলো column . প্রদত্ত উদাহরণ এ — [5, 78, 2, 34, 0] হলো প্রথম row, আর প্রথম কলামটি হলো [5, 6, 7].

    3D Tensors / Higher dimensional tensors

    একাধিক মেট্রিক্স এর array -ই হলো 3D Tensor. একই ভাবে 3D tensor এর array হলো 4D tensor. এইভাবে চলতে থাকবে।
    >>> x = np.array([[[5, 78, 2, 34, 0],
                  [6, 79, 3, 35, 1],
                  [7, 80, 4, 36, 2]],
                 [[5, 78, 2, 34, 0],
                  [6, 79, 3, 35, 1],
                  [7, 80, 4, 36, 2]],
                 [[5, 78, 2, 34, 0],
                  [6, 79, 3, 35, 1],
                  [7, 80, 4, 36, 2]])
    >>> x.ndim
    3

    ৩টি key attribute দিয়ে tensor কে সংজ্ঞায়িত করা যায় —
    ১. Number of Shape (Rank) — Numpy লাইব্রেরি ব্যবহার করলে ndim দিয়ে tensor এর rank জানা সম্ভব।
    ২. Shape — এটা একটা integer tuple. এর মাধ্যমে আমরা জানতে পারি কোনো tensor এর কয়টা axes আছে এবং প্রতিটা axis এ কতগুলো dimension আছে। যেমন: 3D tensor এর shape হতে পারে — (3,3,4). এর মানে ৩টি ৩*৪ ম্যাট্রিক্স।
    ৩. Data Type (dtype ) — tensor এর ডাটা টাইপ যেকোনো ধরণের হতে পারে। এটা float32, float64, unit8, char ইত্যাদি হতে পারে।

    Tensor এর বাস্তব উদাহরণ —

    Vector data — 2D tensor of shape (samples, features)
    Timeseries data or Sequence Data — 3D tensor of shape (samples, timesteps, features)
    Images — 4D tensor of shape (samples, height, width, channels) or (samples, channels, height, width)
    Video — 5D tensor of shape (samples, frame, height, width, channels) or (samples, frames, channels, height, width)
  • 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