<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدجلال پورامید</title>
        <link>https://virgool.io/feed/@m_59450347</link>
        <description>https://cyberuni.ir/</description>
        <language>fa</language>
        <pubDate>2026-04-15 06:10:48</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/962087/avatar/EqCRld.jpg?height=120&amp;width=120</url>
            <title>محمدجلال پورامید</title>
            <link>https://virgool.io/@m_59450347</link>
        </image>

                    <item>
                <title>چرا باید Power BI را یاد بگیریم؟</title>
                <link>https://virgool.io/@m_59450347/%DA%86%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-power-bi-%D8%B1%D8%A7-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-jter8hcgzeso</link>
                <description>PowerBIدر دنیای مدرن، داده‌ها به یکی از باارزش‌ترین دارایی‌های سازمان‌ها تبدیل شده‌اند. تصمیم‌گیری‌های مبتنی بر داده می‌تواند تفاوت بزرگی در موفقیت یا شکست یک کسب‌وکار ایجاد کند. Power BI یکی از قدرتمندترین ابزارهای تحلیل داده است که به کاربران امکان می‌دهد اطلاعات را به شکلی بصری و قابل فهم ارائه دهند. در این مقاله به بررسی اهمیت یادگیری Power BI و نحوه کمک این ابزار به رشد کسب‌وکارها و ارتقای شغلی افراد می‌پردازیم.پاوربی‌آی (Power BI) چیست و چه کاربردی دارد؟پاوربی‌آی Power BI یک ابزار هوش تجاری (BI) توسعه‌یافته توسط مایکروسافت است که برای تحلیل داده‌ها، مصورسازی و ایجاد داشبوردهای تعاملی به کار می‌رود. با استفاده از Power BI، می‌توان داده‌ها را از منابع مختلف دریافت کرده، پردازش و تجزیه‌وتحلیل نمود و نتایج آن را در قالب گزارش‌های پویا و حرفه‌ای نمایش داد.چرا یادگیری Power BI ضروری است؟افزایش فرصت‌های شغلی و بازار کار قدرتمندبا توجه به رشد سریع داده‌ها و اهمیت تحلیل آن‌ها، سازمان‌ها به‌دنبال متخصصانی هستند که بتوانند از ابزارهای تحلیل داده مانند Power BI برای استخراج بینش‌های ارزشمند استفاده کنند. تقاضا برای متخصصان Power BI در حال افزایش است و یادگیری این ابزار می‌تواند فرصت‌های شغلی بسیاری ایجاد کند.ابزار قدرتمند و کاربرپسندپاوربی‌آی Power BI در مقایسه با سایر ابزارهای تحلیل داده مانند Tableau، QlikView و Excel دارای محیطی کاربرپسندتر و امکانات گسترده‌تری است که به کاربران اجازه می‌دهد بدون نیاز به دانش عمیق برنامه‌نویسی، گزارش‌های تحلیلی حرفه‌ای ایجاد کنند.ادغام با سایر محصولات مایکروسافت و ابزارهای دیگرپاوربی‌آی Power BI قابلیت یکپارچه‌سازی با Excel، SQL Server، Azure، Google Analytics، Salesforce و بسیاری از دیگر منابع داده را دارد که آن را به یک ابزار قدرتمند در محیط‌های تجاری تبدیل می‌کند.داشبوردهای تعاملی و بصری‌سازی پیشرفتهیکی از مهم‌ترین ویژگی‌های Power BI قابلیت مصورسازی داده‌ها به شکل نمودارهای تعاملی و داشبوردهای حرفه‌ای است که به کاربران امکان می‌دهد اطلاعات را به‌طور دقیق و پویا تحلیل کنند.کاربردهای Power BI در صنایع مختلفویژگی‌هامالی و حسابداری: با استفاده از Power BI، تیم‌های مالی می‌توانند داده‌های مالی را تجزیه‌وتحلیل کرده و گزارش‌های دقیق و به‌روز ارائه دهند.بازاریابی و فروش: تیم‌های بازاریابی می‌توانند با استفاده از Power BI، عملکرد کمپین‌های تبلیغاتی را ارزیابی کرده و رفتار مشتریان را تحلیل کنند.سلامت و بهداشت: در صنعت سلامت، Power BI به تحلیل داده‌های بیماران و بهینه‌سازی فرایندهای درمانی کمک می‌کند.آموزش و دانشگاه‌ها: مؤسسات آموزشی می‌توانند با استفاده از Power BI داده‌های دانشجویان را تحلیل کرده و برنامه‌های آموزشی را بهینه‌سازی کنند.درآمد متخصصان Power BIطبق گزارش‌های جهانی، میانگین حقوق یک تحلیلگر داده با Power BI بین ۶۰,۰۰۰ تا ۱۲۰,۰۰۰ دلار در سال متغیر است. در ایران نیز متخصصان Power BI جزو پردرآمدترین افراد در حوزه تحلیل داده محسوب می‌شوند.چگونه Power BI را یاد بگیریم؟یادگیری از منابع رایگان و آنلاین: مایکروسافت و سایر پلتفرم‌های آموزشی دوره‌های رایگانی برای Power BI ارائه داده‌اند.تمرین عملی با داده‌های واقعی: برای یادگیری بهتر، پیشنهاد می‌شود که از داده‌های واقعی استفاده کرده و داشبوردهای متنوع طراحی کنید.شرکت در دوره‌های جامع و پروژه‌محور: شرکت در دوره‌های تخصصی مانند دوره جامع و عملی آموزش Power BI، بهترین روش برای یادگیری سریع و کاربردی این ابزار است.اگر به‌دنبال یادگیری یک مهارت پرکاربرد و پردرآمد هستید، Power BI یکی از بهترین گزینه‌هاست. این ابزار می‌تواند به شما در تحلیل داده‌ها، تصمیم‌گیری بهتر و افزایش فرصت‌های شغلی کمک کند. پیشنهاد می‌کنیم دوره جامع Power BI را بررسی کرده و همین امروز یادگیری این مهارت ارزشمند را آغاز کنید!</description>
                <category>محمدجلال پورامید</category>
                <author>محمدجلال پورامید</author>
                <pubDate>Fri, 28 Feb 2025 21:59:44 +0330</pubDate>
            </item>
                    <item>
                <title>مقدمه‌ای بر یادگیری تقویتی(Reinforcement learning) در محیط تاکسی OpenAI Gym</title>
                <link>https://virgool.io/@m_59450347/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%AA%D9%82%D9%88%DB%8C%D8%AA%DB%8Creinforcement-learning-%D8%A8%D8%A7-%D9%85%D8%AD%DB%8C%D8%B7-%D8%AA%D8%A7%DA%A9%D8%B3%DB%8C-sbotg5497j88</link>
                <description>در این نوشته با ترتیب زیر به نحوه‌ی آموزش یک عامل برای حل محیط تاکسی در OpenAI Gym می‌پردازیم.مقدمه‌ای بر یادگیری تقویتیفراهم سازی محیط Taxi در OpenAI Gymآموزش یک عامل تاکسی بوسیله‌ی یادگیری تقویتیمقدمه‌ای بر یادگیری تقویتیدر نظر بگیرید می‌خواهید به حیوان خانگیتان آموزش دهید تا هنگام شنیدن سوت بنشیند یا هنگامی که به او اشاره می‌کنید نزد شما بیاید.اگر حیوان شما بعد از علامتتان کار مورد نظر را انجام دهد، از شما یک پاداش رفتاری دریافت می‌کند (به‌طور مثال اگر با شنیدن صدای سوت بنشیند مورد نوازش قرار می‌گیرد)اگر بعد از علامتتان کاری انجام ندهد از شما هیچ پاداشی دریافت نمی‌کندبا ادامه دادن این روند سگ شما با توجه به پاداشی که دریافت می‌کند یاد می‌گیرد تا با انجام حرکت‌های که موجب دریافت پاداش می‌شود سود خود را بیشینه کند، در نتیجه حیوان شما آموزش می‌بیند تا به هنگام شنیدن سوت بنشیند.  یادگیری تقویتی به عنوان زیرمجموعه‌ای از یادگیری ماشین سعی می‌کند عامل را به نحوی آموزش دهد تا عامل بتواند مجموعه اقدام‌هایی که موجب بیشینه شدن پاداشش در محیط می‌شود را انتخاب کند.منبع :‌ کتاب بارتو و ساتنفراهم سازی محیط تاکسی در OpenAI Gymتاکسی چیست‌؟تاکسی یک محیط از چندین محیط قابل دسترسی در OpenAI Gym می‌باشد. هدف تاکسی سوار کردن مسافر و پیاده کردن آن در مقصد با کمترین میزان حرکت می‌باشد. در این آموزش شما ابتدا با یک عامل که به‌صورت تصادفی عمل می‌کنید آشنا می‌شوید و سپس یک عامل که توسط یادگیری تقویتی آموزش دیده شده‌است را مشاهده می‌کنید. نصب محیط OpenAI Gym و TAXIدر ابتدا لازم است شما دو کتابخوانه‌ی OpenAI Gym و NumPy را به‌صورت زیر نصب کنیدOpenAI Gym pip install gym
NumPy pip install numpyقطعه کد زیر پکیج‌های مورد نیاز را فراخوانی می‌کند و محیط تاکسی را ایجاد می‌کند.import numpy as np
import gym
import random

env = gym.make(&#039;Taxi-v3&#039;)نحوه‌ی ایجاد یک عامل تصادفی ?اجازه دهید ابتدا با پیاده‌سازی یک عامل که اصلا یاد نمی‌گیرد و اقداماتش را به صورت تصادفی انتخاب می‌کند شروع کنیم. در ابتدا نیاز است که به عامل خود حالت اولیه را تخصیص دهیم تا درک درستی از محیط داشته باشد. در مسئله‌ی تاکسی حالت اولیه نمایانگر این است که تاکسی، مسافر، مقصد و مبدا در کجا قرار دارند. شکل زیر سه حالت مختلف برای مساله‌ی تاکسی را نمایش می‌دهد. زرد: تاکسی، آبی: مبدا، بنفش: مقصدبرای دریافت حالت اولیه می‌توان از کد زیر استفاده کرد:state = env.reset()در ادامه ما یک حلقه ایجاد می‌کنیم تا عامل‌مان در هر مرحله:یک اقدام تصادفی انجام دهد( ۰-جنوب، ۱-شمال، ۲-شرق، ۳-غرب، ۴-سوارکردن و ۵-پیاده‌کردن)حالت جدید را دریافت کندکد آن به صورت زیر می‌باشدimport gym
import numpy as np
import random

# create Taxi environment
env = gym.make(&#039;Taxi-v3&#039;)

# create a new instance of taxi, and get the initial state
state = env.reset()

num_steps = 99
for s in range(num_steps+1):
    print(f&amp;quotstep: {s} out of {num_steps}&amp;quot)

    # sample a random action from the list of available actions
    action = env.action_space.sample()

    # perform this action on the environment
    env.step(action)

    # print the new state
    env.render()

# end this instance of the taxi environment
env.close()اگر کد بالا را اجرا کنید می‌بینید که عامل شما به صورت تصادفی اقداماتی را انجام می‌دهد. البته این اقدامات نتایج مثبتی ندارد اما برای درک محیط تاکسی می‌تواند مفید باشد. ایجاد عامل یادگیری Qیادگیری Q یک الگوریتم یادگیری تقویتی است که بدنبال پیدا کردن اقدام احتمالی بعدی بر اساس حالت فعلی است تا بتواند پاداش را بیشینه کند. حالت زیر را تصور کنید.به نظر شما تاکسی که به رنگ زرد می‌باشد چه اقدامی را انتخاب می‌کند ؟بگذارید ابتدا به نحوه‌ی پاداش‌دهی محیط تاکسی بپردازیم.سیستم پاداش‌دهی محیط تاکسیبا توجه به سند OpenAI Gym برای محیط TAXI…you receive +20 points for a successful drop-off, and lose 1 point for every timestep it takes. There is also a 10 point penalty for illegal pick-up and drop-off actions.حال اگر به حالت بالا نگاه کنیم اقدام‌های احتمالی و متناسبا پاداش‌های دریافتی به‌صورت زیر می‌باشدعامل اگر چهار اقدام حرکتی را انجام دهد یک امتیاز از دست می‌دهد و همچنین اگر اقدام پیاده‌کردن و یا سوارکردن را انجام دهد ۱۰ امتیاز از دست می‌دهد. اما ما می‌خواهیم که عامل به سمت نقطه‌ی آبی حرکت کند تا مسافر را سوار کند پس این سوال بوجود می‌آید که چطور باید عامل از بین چهار اقدام با پاداش مساوی -۱ انتخاب کند ؟جستجو (Exploration)عامل ما در حال حاضر نمی‌داند چه اقدامی را انجام دهد و کدامین آنها باعث می‌شود تا به نقطه‌ی آبی نزدیک گردد. اینجاست که مبحث صحیح و خطا مطرح می‌شود و عامل مجبور است تا اقدامات تصادفی انجام دهد تا مشاهده کند چه پاداشی دریافت می‌کند. بعد از تکرارهای زیاد، عامل متوجه می‌شود چه مجموعه اقدام‌هایی باعت دریافت بیشتر پاداش می‌شود. در طول مسیر عامل نیاز دارد تا سرنخی از مقادیر برای خود ذخیره کند. جدول Qجدول Q جدولی است که در خود مقادیر مورد انتظار پاداش‌های آینده که عامل انتظار دارد با اقدامی مشخص دریافت کند را در خود ذخیره دارد که به آن اصطلاحا مقادیر-Q می‌گویند. در اصل این مقادیر به عامل ما می‌گوید که با روبرو شدن با یک حالت قطعی، برخی اقدامات محتمل‌تر برای رسیدن به پاداش بیشتر می‌باشند. تصویر زیر نمایانگر این است که یک جدول Q به چه شکل می‌باشد.هر سطر مرتبط با یک حالت یکتا برای محیط تاکسی می‌باشد.هر ستون مرتبط با یک اقدام که عامل می‌تواند داشته باشد است.هر سلول مقدار Q را نمایش می‌دهد اگر میزان Q برای یک جفت اقدام-حالت بیشتر باشد، نمایانگر این‌ است که انتخاب آن اقدام موجب رسیدن به پاداش بالاتری می‌شود.قبل از اینکه لازم باشد ما عامل خود را پیاده‌سازی کنیم، نیاز است تا جدول Q را بسازیم. کد زیر این امر را برای ما میسر می‌سازد.state_size = env.observation_space.n  # total number of states (S)
action_size = env.action_space.n      # total number of actions (A)

# initialize a qtable with 0&#039;s for all Q-values
qtable = np.zeros((state_size, action_size))عامل ما در محیط جستجو می‌کند و جدول Q را با مقادیر Q که پیدا کرده‌است بروزرسانی می‌کند. برای محاسبه‌ی مقدار Q از الگوریتم یادگیری-Q استفاده می‌کنیمالگوریتم یادگیری-Qالگوریتم یادگیری-Q در زیر آمده است، در این متن به جزییات آن نمی‌پردازیم اما شما می‌توانید جزییات بیشتر را در کتاب ساتن و بارتو مشاهده کنید.الگوریتم یادگیری Qکد زیر مربوط به پیاده سازی این الگوریتم می‌باشد.# hyperparameters to tune
learning_rate = 0.9
discount_rate = 0.8

# dummy variables
reward = 10 # R_(t+1)
state = env.observation_space.sample()      # S_t
action = env.action_space.sample()          # A_t
new_state = env.observation_space.sample()  # S_(t+1)

# Qlearning algorithm: Q(s,a) := Q(s,a) + learning_rate * (reward + #discount_rate * max Q(s&#039;,a&#039;) - Q(s,a))
qtable[state, action] += learning_rate * (reward + discount_rate * / np.max(qtable[new_state,:]) - qtable[state,action])جستجو در مقابل بهره‌برداری:تا اکنون ما اجازه دادیم تا عامل در محیط به جستجو بپردازد، همینکه بعد از تعداد زیادی تکرار عامل نسبت به محیط آگاهی مناسبی پیدا کرد حال به اجازه می‌دهیم تا عملیات بهره برداری از محیط را آغاز کند. در طول مراحل بهره‌برداری عامل به جدول Q نگاه می‌کند و بهترین اقدام متناسب با بیشترین پاداش را انتخاب می‌کند. روش‌های مختلفی برای پیاده‌سازی مراحل بهره‌برداری می‌باشد، کد زیر یک نمونه از آن می‌باشد.episode = random.randint(0,500)
qtable = np.random.randn(env.observation_space.sample(), env.action_space.sample())

# exploration-exploitation tradeoff
epsilon = 1.0     # probability that our agent will explore
decay_rate = 0.01 # of epsilon

if random.uniform(0,1) &lt; epsilon:
    # explore
    action = action = env.action_space.sample()
else:
    # exploit
    action = np.argmax(qtable[state,:])

# epsilon decreases exponentially --&gt; our agent will explore less and less
epsilon = np.exp(-decay_rate*episode)در این قطعه کد ما مقدار اپسیلون رو برابر با ۰.۷ قرار دادیم در نتیجه در این گام ۷۰ درصد عامل جستجو و ۳۰ درصد بهره‌برداری انجام می‌دهد. در طی زمان مقدار اپسیلون به صورت نمایی کاهش می‌یابد تا عامل بیشتر به بهره‌برداری بپردازد.در کنار هم قرار دادن تمامی تکه‌های پازلمراحل یادگیری برای عامل ما به شکل زیر می‌باشد.ابتدا تمامی مقادیر جدول Q را صفر قرار می‌دهیماجازه می‌دهیم تا عاملمان محیط تاکسی را در تعداد بار بالا بازی کنید به صورت پیوسته جدول Q را با الگوریتم یادگیری Q به‌روزرسانی می‌کنیم با توجه به استراتژی جستجو-بهره‌برداریپیاده سازی کامل به شکل زیر می‌باشد.import numpy as np
import gym
import random

def main():

    # create Taxi environment
    env = gym.make(&#039;Taxi-v3&#039;)

    # initialize q-table
    state_size = env.observation_space.n
    action_size = env.action_space.n
    qtable = np.zeros((state_size, action_size))

    # hyperparameters
    learning_rate = 0.9
    discount_rate = 0.8
    epsilon = 1.0
    decay_rate= 0.005

    # training variables
    num_episodes = 1000
    max_steps = 99 # per episode

    # training
    for episode in range(num_episodes):

        # reset the environment
        state = env.reset()
        done = False

        for s in range(max_steps):

            # exploration-exploitation tradeoff
            if random.uniform(0,1) &lt; epsilon:
                # explore
                action = env.action_space.sample()
            else:
                # exploit
                action = np.argmax(qtable[state,:])

            # take action and observe reward
            new_state, reward, done, info = env.step(action)

            # Q-learning algorithm
            qtable[state,action] = qtable[state,action] + learning_rate * (reward + discount_rate * np.max(qtable[new_state,:])-qtable[state,action])

            # Update to our new state
            state = new_state

            # if done, finish episode
            if done == True:
                break

        # Decrease epsilon
        epsilon = np.exp(-decay_rate*episode)

    print(f&amp;quotTraining completed over {num_episodes} episodes&amp;quot)
    input(&amp;quotPress Enter to watch trained agent...&amp;quot)

    # watch trained agent
    state = env.reset()
    done = False
    rewards = 0

    for s in range(max_steps):

        print(f&amp;quotTRAINED AGENT&amp;quot)
        print(&amp;quotStep {}&amp;quot.format(s+1))

        action = np.argmax(qtable[state,:])
        new_state, reward, done, info = env.step(action)
        rewards += reward
        env.render()
        print(f&amp;quotscore: {rewards}&amp;quot)
        state = new_state

        if done == True:
            break

    env.close()

if __name__ == &amp;quot__main__&amp;quot:
    main()</description>
                <category>محمدجلال پورامید</category>
                <author>محمدجلال پورامید</author>
                <pubDate>Fri, 11 Jun 2021 22:03:39 +0430</pubDate>
            </item>
            </channel>
</rss>