جستجو برای:
  • دوره‌های آموزشی
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش رایگان matplotlib
    • آموزش گوگل کولب
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • دوره‌های آموزشی
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق رایگان
      • آموزش pytorch رایگان
      • آموزش گوگل کولب
    • نقشه راه AI
    • وبلاگ
    • درباره ما
      • اساتید
      • پشتیبانی
    0
    ورود / عضویت

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ یادگیری تقویتی یادگیری تقویتی چیست؟

    یادگیری تقویتی چیست؟

    2026/03/15
    ارسال شده توسط سید سجاد اشرفی
    یادگیری تقویتی
    271 بازدید

    یادگیری تقویتی چیست؟ یادگیری تقویتی (Reinforcement Learning) شاخه‌ای جذاب و البته مشکل از هوش مصنوعی است که در آن ماشین‌ها از طریق تجربه و پاداش، هوشمند می‌شوند. در این آموزش از آکادمی هوسم، مفاهیم یادگیری تقویتی را به زبان ساده توضیح می‌دهم. با من همراه باشید تا شما را با RL آشنا کنم…

    فهرست مطالب نمایش
    1. یادگیری تقویتی چیست؟
    2. دیاگرام چرخه عامل و محیط در یادگیری تقویتی
    2.1. اجزای اصلی در یادگیری تقویتی
    3. فاز آموزش و استنتاج در یادگیری تقویتی
    4. ابزارها و کتابخانه‌های یادگیری تقویتی
    4.1. کتابخانه Gymnasium
    4.2. کتابخانه Stable-Baselines3
    4.3. کتابخانه PyTorch
    4.4. شروع یادگیری تقویتی برای تازه‌کارها
    5. پروژه یادگیری تقویتی (RL)

    یادگیری تقویتی چیست؟

    یادگیری تقویتی یا Reinforcement Learning یا RL یکی از شاخه‌های مهم و جذاب یادگیری ماشین است. همان‌طور که از کلمه Learning مشخص است، یادگیری تقویتی یک نوع روش یادگیری است. مشابه با روش یادگیری باناظر (Supervised Learning) یا یادگیری بدون ناظر (Unsupervised Learning) که احتمالا با آنها آشنایی دارید. اما، دقیقا Reinforcement به چه معناست؟ در فارسی می‌توان آن را معادل تقویت یا تشویق دانست. در روان‌شناسیِ یادگیری، تقویت به پاداشی گفته می‌شود که باعث افزایش احتمال تکرار یک رفتار خاص می‌شود. مثلا وقتی حیوانی بعد از زدن یک دکمه غذا می‌گیرد، آن رفتار (زدن دکمه) توسط پاداش تقویت می‌شود.

    وقتی این مفهوم وارد دنیای هوش مصنوعی و یادگیری ماشین شد، پژوهشگران از همان منطق استفاده کردند: عامل هوشمند باید از پاداش و تنبیه محیط یاد بگیرد کدام عمل سودمندتر است و آن را تکرار کند. بنابراین، یادگیری‌ای که از راه پاداش و بازخورد صورت می‌گیرد، یادگیری از راه تقویت یا همان Reinforcement Learning نام گرفت. به بیان ساده، نام این روش، ادای دینی است به نظریه‌های روان‌شناسی رفتاری که در آن یادگیری با تقویت رفتار مطلوب محور اصلی آموزش موجودات زنده بود.

    این مقاله را حتما بخوانید
    انواع یادگیری در یادگیری ماشین
    ←

    توضیحات بالا، ریشه و معنی یادگیری تقویتی یا Reinforcement Learning را مشخص کرد. اما حالا لازم هست یک تعریف علمی و دقیق از یادگیری تقویتی ببینیم. یادگیری تقویتی یعنی:

    آموزش دادن یک عامل هوشمند (Agent) که
    از طریق تعامل با محیط (Environment) یاد بگیرد و 
    عمل‌هایی (Action) انجام دهد که 
    مجموع پاداش‌هایش (Reward) را در طول زمان به حداکثر برساند. 

    سعی کنید، تعریف بالا را عمیق درک کنید. برای درک بهتر این تعریف، مثال زیر را برای شما آورده‌ام. بازی Pacman یکی از بازی‌های محبوب ما در دوران کودکی و نوجوانی بود. ما به این بازی نقطه‌خور می‌گفتیم! موجودی زرد رنگ که هدایتش در دست ما بود، نقطه‌های سفید ریز و درشت را می‌خورد و امتیاز جمع می‌کرد. درعین‌حال، باید از موجودهای روح رنگارنگ فاصله می‌گرفت. البته، در یک حالت ما می‌توانستیم این روح‌ها را شکار کنیم و بخوریم؛ آن‌هم زمانی بود که نقطه‌های سفید بزرگ را می‌خوردیم، چند ثانیه فرصت استثنایی برای شکار روح داشتیم! حال با این توضیحات کلی، بیایید این بازی را به فضای یادگیری تقویتی ببریم و با تعریف علمی بالا تطبیق دهیم:

    • در فضای RL، موجود زردرنگ نقش عامل هوشمند (Agent) را دارد.
    • کل بازی به‌جز ایجنت (موجود زردرنگ) محیط (Environment) هست.
    • هر حرکت موجود زردرنگ معادل با عمل (Action) است. در این بازی، ایجنت فقط چهار حرکت ↑→←↓ دارد.
    • امتیازهای به‌دست‌آمده در بازی معادل با پاداش (Reward) است.
    • به‌دنبال این هستیم که در یک اپیزود/سری/دست بازی مجموع امتیازهای به‌دست‌آمده حداکثر باشد. به SCORE نگاه کنید.
    یادگیری تقویتی (Reinforcement Learning)
    ایجنت آموزش‌دیده در محیط بازی Pacman

    در بخش بعدی، نگاه‌مان کمی علمی‌تر خواهد شد…

    دیاگرام چرخه عامل و محیط در یادگیری تقویتی

    در یادگیری تقویتی، دیاگرامی معروفی به‌نام چرخه تعامل عامل (Agent) و محیط (Environment) در یادگیری تقویتی یا حلقه یادگیری عامل–محیط وجود دارد. در این دیاگرام معمولا رابطه رفت‌وبرگشتی میان عامل و محیط نمایش داده می‌شود:

    • عامل در هر گام زمانی با مشاهده وضعیت/حالت محیط (State) تصمیم می‌گیرد عملی (Action) انجام دهد.
    • پس از انجام آن عمل، محیط واکنش نشان می‌دهد و وضعیت/حالت جدید و مقدار پاداش (Reward) را برمی‌گرداند.
    • این اطلاعات به عامل می‌رسد و باعث به‌روزرسانی سیاست تصمیم‌گیری‌اش می‌شود تا در آینده عملکرد بهتری داشته باشد.

    این چرخه مشاهده–عمل–بازخورد اساس یادگیری تقویتی را تشکیل می‌دهد و به عامل اجازه می‌دهد با تجربه‌کردن مسیر بهینه دستیابی به اهداف را یاد بگیرد.

    یادگیری تقویتی
    چرخه تعامل عامل (Agent) و محیط (Environment) در یادگیری تقویتی

    در بخش قبلی، درباره وضعیت/حالت محیط (State) توضیح ندادم. اما در این تصویر بالا این اصطلاح وجود دارد. انتظار دارم مفهوم آن برای شما واضح باشد، اما بازهم توضیح می‌دهم. ایجنت ما هر عملی که انجام می‌دهد، در یک موقعیت/وضعیت جدیدی از محیط قرار می‌گیرد. این موقعیت/وضعیت ایجنت باید از طریق محیط به ایجنت گفته شود تا او بتواند عمل بعدی را انجام دهد. مثلا، ایجنت حرکت ↑ انجام داده؛ بسیارخب، نتیجه این حرکت ایجنت چه بوده؟ امتیاز کسب کرده؟ به دشمن برخورد کرده؟ اصلا هیچ اتفاقی نیفتاده؟ بنابراین، مشاهده وضعیت توسط ایجنت برای تصمیم‌گیری و انجام یک عمل مناسب کاملا ضروری است.

    اجزای اصلی در یادگیری تقویتی

    به‌صورت کلی، 5 جز اصلی در چرخه تعامل عامل و محیط در یادگیری تقویتی وجود دارد. اگرچه، با هر 5 جز تاکنون آشنا شدید، اما بازهم خوب است که باهم این موارد را مرور کنیم:

    • عامل (Agent): موجود هوشمند با قابلیت تصمیم‌گیری و یادگیری
    • محیط (Environment): دنیای عامل با مجموعه‌ای قانون و واکنش به کنش عامل
    • وضعیت (State): توصیف کاملی از شرایط فعلی عامل در محیط
    • کُنش (Action): تصمیم یا حرکت عامل در یک وضعیت مشخص
    • پاداش (Reward): سیگنال عددی (+/-) نشان‌دهنده موفقیت/شکست عامل

    فاز آموزش و استنتاج در یادگیری تقویتی

    اگرچه در روش‌های کلاسیک و تئوری یادگیری تقویتی، عامل هوشمند می‌تواند به‌صورت پیوسته در حین تعامل با محیط یاد بگیرد و مرز کاملا مشخصی بین فاز آموزش (Learning) و استنتاج (Inference) وجود ندارد؛ اما با ورود شبکه‌های عصبی و پیدایش یادگیری تقویتی عمیق (Deep RL)، شرایط تغییر کرد. در روش‌های مدرن، معمولا فاز آموزش (Learning) و استنتاج (Inference) از هم جدا می‌شوند.

    در Deep RL، روال کلی فازهای آموزش و استنتاج تفاوت چندانی با یادگیری باناظر ندارد. اینجا هم، ابتدا ایجنت در محیط شبیه‌سازی‌شده آموزش می‌بیند که چگونه بازی کند (Learning)؛ سپس، از این عامل آموزش‌دیده برای بازی واقعی و تصمیم‌گیری استفاده می‌شود (Inference). در واقع، زمانی‌که فرآیند آموزش تمام و فاز استنتاج شروع می‌شود، فرآیند یادگیری ایجنت و آپدیت‌شدن وزن‌های مدل متوقف خواهد شد.

    در شکل زیر، بلوک دیاگرام چرخه تعامل عامل و محیط را به دو بخش مجزا توسعه داده‌ام. در فرآیند Learning، ایجنت شامل یک مدل و الگوریتم یادگیری است. بخواهم کمی ساده‌سازی کنم، فکر کنید برای مدل از شبکه عصبی MLP و برای الگوریتم یادگیری هم از گرادیان کاهشی استفاده کرده‌ایم. تاکید می‌کنم که همه الگوریتم‌های تقویتی بر پایه شبکه عصبی و گرادیان کاهشی نیستند. در اثر تعامل عامل با محیط، یعنی همان چرخه مشاهده–عمل–بازخورد، عامل دستیابی به امتیاز حداکثری را می‌آموزد. اما در فرآیند Inference، دیگر خبری از الگوریتم یادگیری نیست و تنها مدل آموزش‌دیده با محیط تعامل می‌کند.

    دیاگرام چرخه RL
    دیاگرام چرخه RL در دو فاز Learning و Inference

    ویدئوی زیر، به‌خوبی نشان می‌دهد که در اثر تکرار زیاد فاز آموزش/یادگیری ایجنت (زیاد بازی کردن ایجنت)، عملکردش بهتر می‌شود. طوری‌که بعد از 5000 بار بازی، همه نقطه‌ها را به‌سرعت می‌خورد و دشمن را رنده می‌کند!

    https://howsam.org/wp-content/uploads/2020/12/packman-deep.mp4

    ابزارها و کتابخانه‌های یادگیری تقویتی

    برای شروع یادگیری تقویتی، چند کتابخانه مهم در پایتون وجود دارند که کار پیاده‌سازی و آزمایش ایده‌ها را بسیار ساده می‌کنند. در ادامه فهرستی از کتابخانه‌های مهم را آورده‌ام.

    کتابخانه Gymnasium

    کتابخانه Gymnasium شامل کلکسیونی از محیط‌های بازی و استاندارد برای آزمایش الگوریتم‌هاست. اتفاقا ممکن است، این سوال برای بسیاری از شماها وجود داشته باشد که چگونه یک ایجنت را در یک محیط بازی آموزش می‌دهیم؟ اصلا این محیط بازی کجاست و چطور می‌شود از این محیط‌ها استفاده کنند؟ جواب این سوال‌ها، همین کتابخانه Gymnasium است. کتابخانه‌ای که محیطی مانند انیمیشن زیر را آماده کرده و شما با کدنویسی پایتون می‌توانید این محیط را فراخوانی و استفاده کنید.

    کتابخانه Gymnasium در یادگیری تقویتی
    یک نمون محیط از کلکسیون محیط‌های Gymnasium

    چطور است به کدهای محیط بالا هم نگاهی بیندازیم؟

    import gymnasium as gym
    
    # Initialise the environment
    env = gym.make("LunarLander-v3", render_mode="human")
    
    # Reset the environment to generate the first observation
    observation, info = env.reset(seed=42)
    for _ in range(1000):
        # this is where you would insert your policy
        action = env.action_space.sample()
    
        # step (transition) through the environment with the action
        # receiving the next observation, reward and if the episode has terminated or truncated
        observation, reward, terminated, truncated, info = env.step(action)
    
        # If the episode has ended then we can reset to start a new episode
        if terminated or truncated:
            observation, info = env.reset()
    
    env.close()

    توضیح مختصری درباره کدهای بالا:

    • ابتدا کتابخانه ایمپورت شده.
    • سپس، با دستور make، محیط بازی LunarLander فراخوانی شده.
    • یک حلقه به تعداد تکرار 1000 تعریف شده. فکر کنید، به بچه‌مان اجازه داده‌ایم مثلا یک ساعت بازی کند!
    • در هر تکرار از این حلقه، مدل باتوجه به وضعیت یک عملی (action) انجام می‌دهد. اینجا مدلی نداریم و صرفا یک حرکت تصادفی انجام می‌شود.
    • عمل انجام‌شده به دستور step داده می‌شود تا وضعیت (state)، پاداش (reward) و یکسری فاکتور دیگر مشخص شود.
    • متغیرهای terminated و truncated تعیین می‌کنند که اپیزود جاری تمام شده یا نه. ممکن است به خاطر لندینگ موفق یا ناموفق، بازی تمام شود. پس باید محیط ریست شود و از نو ایجنت بازی را شروع کند. آنقدر بازی کند تا بالاخره آن 1000 تکرار حلقه تمام شود.
    • پس، اگر بخواهیم انیمیشن کامل این کد را ببینیم، ایجنت از ابتدا شروع می‌کند تا اینکه پیروز شود یا شکست بخورد. این فرآیند مدام تکرار می‌شود تا به پایان 1000 تکرار برسیم. دقیقا انیمیشن بالا، همین حالت را نشان می‌دهد. وقتی لندینگ تمام شد، از نو بازی شروع می‌شود و این فرآیند تا پایان 1000 تکرار ادامه دارد.

    کتابخانه Stable-Baselines3

    کتابخانه Stable-Baselines3 الگوریتم‌های پیچیده یادگیری تقویتی (مثل DQN یا PPO) را به شکلی پیاده‌سازی کرده که شما به راحتی بتوانید از آن‌ها استفاده کنید. به جای اینکه خودتان تمام جزئیات ریاضی و کدنویسی مربوط به این الگوریتم‌ها را بنویسید، کافیست از توابع آماده آن استفاده کرده و روی تعریف محیط و تنظیم پارامترها تمرکز کنید. این کتابخانه بسیار قابل اعتماد و پرکاربرد است. اجازه می‌دهد تا به سرعت ایده‌های خود را امتحان کرده و مدل‌های یادگیری تقویتی را بسازید.

    به عنوان نمونه، با تکه کد زیر، من یک مدل (شبکه MLP) را بر پایه الگوریتم PPO روی محیط LunarLander برای 1000 گام آموزش داده‌ام. فقط یک خط کد!

    from stable_baselines3 import PPO 
    import gymnasium as gym 
    
    # Initialize environment and train the PPO agent in one continuous chain 
    model = PPO("MlpPolicy", "LunarLander-v3").learn(total_timesteps=10000)

    کتابخانه PyTorch

    کتابخانه PyTorch یک کتابخانه قدرتمند برای یادگیری عمیق (Deep Learning) است. در یادگیری تقویتی، اغلب نیاز داریم از شبکه‌های عصبی برای تصمیم‌گیری عامل (مثلا اینکه در هر لحظه چه حرکتی انجام دهد) استفاده کنیم. پایتورچ این امکان را فراهم می‌کند که بتوانید این شبکه‌های عصبی را به راحتی طراحی، آموزش و مدیریت کنید. کار با پایتورچ به سادگی کار با Stable-Baselines3 نیست! نیازمند این هست که یادگیری عمیق و کدنویسی پایتورچ را بلد باشید. در آکادمی هوسم، تا دلتان بخواهد آموزش پایتورچ داریم!

    شروع یادگیری تقویتی برای تازه‌کارها

    ابزارهای بسیار زیادی برای یادگیری تقویتی وجود دارد. اما، به نظرم برای شروع همین اندازه کافی است. بنابراین، اگر در دنیای RL تازه‌وارد هستید، فرمول زیر ترکیب ایده‌آلی است:

    Gymnasium + Stable-Baselines3 + PyTorch

    هم ساده، هم قدرتمند و هم آموزش‌های فراوان دارد. با کتابخانه Gymnasium محیط را بساز. با کتابخانه Stable-Baselines3 و کتابخانه PyTorch ایجنت بساز و آموزش بده.

    پروژه یادگیری تقویتی (RL)

    به‌عنوان آخرین قدم می‌خواهم یک پروژه یادگیری تقویتی را از صفر تا صد به شما نشان دهم. این پروژه بسیار ساده است و هدفم صرفا این هست که آنچه در این آموزش یاد گرفتید را مرور کنید و یک بار به‌صورت عملی ببینید.

    ابتدا، کتابخانه‌های زیر را نصب کنید:

    pip install gymnasium[box2d] stable-baselines3

    حالا کد زیر را در VSCode اجرا کنید:

    import gymnasium as gym
    from stable_baselines3 import PPO
    
    # 1. Create the environment
    env = gym.make("LunarLander-v3")
    
    # 2. Initialize the PPO model
    model = PPO("MlpPolicy", env, verbose=1, learning_rate=0.0003, n_steps=1024)
    
    print("Training the agent... Please wait.")
    # 3. Train the agent (Learning Phase)
    model.learn(total_timesteps=1_000_000)
    print("Training finished!")
    
    # Close the training environment
    env.close()
    
    # 4. Test the trained agent (Inference Phase)
    # Recreate env with 'human' render mode to watch the agent play
    env = gym.make("LunarLander-v3", render_mode="human")
    obs, info = env.reset()
    
    for i in range(1000):
        print(i)
        # Predict the best action based on the current observation
        action, _states = model.predict(obs, deterministic=True)
        
        # Take the action in the environment
        obs, reward, terminated, truncated, info = env.step(action)
        
        # If the lander crashes or lands successfully, reset the environment
        if terminated or truncated:
            obs, info = env.reset()
    
    env.close()

    کد بالا نکته جدیدی ندارد. در بخش‌های قبلی درباره بخش‌های مختلف این کد توضیح داده‌ام. ابتدا با الگوریتم PPO روی محیط LunarLnader یک ایجنت برای 1 میلیون اپیزود آموزش داده‌ام. چقدر زیاد؟ خب، باید آنقدر بازی کند تا به سطح تسلط خوبی برسد. اعداد کمتر، نتیجه دلچسبی ندارد. سپس، از این ایجنت آموزش‌دیده، در محیط شبیه‌سازی‌شده LunarLander استفاده کرده‌ام.

    من چند خروجی خوب از کد بالا گرفتم. اما یکی از خروجی‌های چالشی را برای شما گذاشته‌ام. جایی که ایجنت ابتدا در مسیری حرکت می‌کند که نزدیک است خارج از ناحیه پرچم فرود بیاید. اما درنهایت، مسیر خود را اصلاح می‌کند و در جای درستی فرود می‌آید:

    https://howsam.org/wp-content/uploads/2026/03/lunar_lander_ppo-episode-2.mp4

    این هم پایان آموزش یادگیری تقویتی چیست؟ البته که این سرآغاز حوزه یادگیری تقویتی است. هنوز از یادگیری تقویتی چیزی نمی‌دانید. باید همین‌طور گام‌به‌گام پیش بروید تا بالاخره به سطح دانش و مهارت خوبی در RL برسید. خب، مشتاقم نظر شما را درباره این آموزش بدانم. چطور بود؟ توانستید با RL ارتباط برقرار کنید؟ خوشتان آمد؟ در این آموزش، به عنوان اولین قدم، چه چیزهایی کم بود که پیشنهاد می‌کنید گفته شود؟ منتظر نظرات شما هستم…

    اشتراک گذاری:

    3 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • فرید گفت:
      2026/05/24 در 3:34 ق.ظ

      سلام مطالب خوبی بود کاشکی یه دوره کلی درباره یادگیری تقویتی عمیق می گذاشتید و تمام الگوریتم های موجود توضیح می دادید

      پاسخ
    • Parsa گفت:
      2026/03/24 در 5:44 ب.ظ

      سلام. عرض ادب . نوروز مبارک
      جالب و خواندنی بود . کاش مطالب بیشتری در رابطه با RL بگذارید تا بیشتر بهره ببریم .
      هم در قالب وبلاگ هم در قالب دوره .
      ممنون از مطالب خوبتون

      پاسخ
      • هوسم گفت:
        2026/03/26 در 2:33 ب.ظ

        سلام
        سال نو مبارک 🥗
        باعث خوشحالیه که این آموزش رو دوست داشتید.
        ممنون که کامنت گذاشتید.
        بله، برنامه داریم که مطالب آموزشی بیشتری در راستای یادگیری تقویتی منتشر کنیم.

        پاسخ

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      ورود
      استفاده از موبایل
      استفاده از آدرس ایمیل
      آیا هنوز عضو نیستید؟ اکنون عضو شوید
      بازنشانی رمز عبور
      استفاده از موبایل
      استفاده از آدرس ایمیل
      عضویت
      استفاده از موبایل
      استفاده از ایمیل
      قبلا عضو شدید؟ اکنون وارد شوید

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت