<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Younes A . L</title>
        <link>https://virgool.io/feed/@YounesA_L</link>
        <description>یونس هستم؛ دانشجوی علوم کامپیوتر با علاقه‌ به الگوریتم‌های جدید و بازارهای مالی.
در اینجا داستان یادگیری‌ام را مستندسازی می‌کنم؛ از مفاهیم فنی تا دانش مالی.</description>
        <language>fa</language>
        <pubDate>2026-04-14 14:50:46</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/4716413/avatar/t2S03I.png?height=120&amp;width=120</url>
            <title>Younes A . L</title>
            <link>https://virgool.io/@YounesA_L</link>
        </image>

                    <item>
                <title>از ساده ترین فرمول ریاضی تا Machine Learning</title>
                <link>https://virgool.io/@YounesA_L/%D8%A7%D8%B2-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AA%D8%B1%DB%8C%D9%86-%D9%81%D8%B1%D9%85%D9%88%D9%84-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-%D8%AA%D8%A7-machine-learning-bunwetd2ta3q</link>
                <description>از الگوریتم نوشتاری تا اجرای کامل مدلاین پروژه در اصل تکلیف یکی از دوستانم بود و من برای کمک به او سراغش رفتم.در ابتدا تقریباً همه چیز برایم مبهم بود و درک روشنی از نحوه کار مدل نداشتم.ابتدا کد را به AI دادم تا توضیح بدهد. توضیحاتی دریافت کردم، اما خیلی زود متوجه شدم که با خواندن توضیح آماده، فهم عمیق اتفاق نمی‌افتد.به همین دلیل از AI خواستم کد را ساده‌تر کند، چون تا آن زمان من زبان C++ را در حد مقدماتی و در حد یک ترم دانشگاه بلد بودم.از آن‌جایی که تبدیل الگوریتم نوشتاری به کد را بسیار دوست دارم، تصمیم گرفتم این بار هم همین کار را انجام دهم. بنابراین از AI خواستم الگوریتم نوشتاری (pseudocode) را استخراج کند و خودم آن را به C++ تبدیل کنم.و این‌جا بود که کار اصلی شروع شد.درک مفهوم Linear Regressionاولین چیزی که باید می‌فهمیدم این بود که این کد دقیقاً چه کاری انجام می‌دهد و منطق آن چیست.با کمی تحقیق به این نتیجه رسیدم که می‌توان مفهوم آن را با یک مثال ساده توضیح داد:فرض کنید:در یک کیسه 5 سیب داریم و جرم آن 527 گرم است.در کیسه‌ای دیگر 8 سیب داریم و جرم آن 798 گرم است.در کیسه‌ای دیگر 3 سیب داریم و جرم آن را اندازه می‌گیریم.با چند بار اندازه‌گیری متوجه می‌شویم جرم هر سیب تقریباً حدود 100 گرم است.اگر از ما بپرسند جرم 6 سیب چقدر است، می‌توانیم با تقریب خوبی پیش‌بینی کنیم.این دقیقاً همان کاری است که مدل Linear Regression انجام می‌دهد:آزمایش می‌کند، تکرار می‌کند و یاد می‌گیرد.پایه این مدل فرمول زیر است:y = a x + bدر پروژه من:height = a ⋅ weight + bتعریف داده‌هااولین مرحله عملی، تعریف داده‌های آموزشی بود.برای این مدل از قد و وزن افراد استفاده کردم:weight (kg): 50 ، 60 ، 70 ، 80height (cm): 155 ، 168 ، 175 ، 181در مدل اولیه از آرایه‌های C-style استفاده شده بود، اما چون آن‌ها قدیمی هستند، تصمیم گرفتم از آرایه‌های مدرن‌تر C++ استفاده کنم.Modern arrayنمایش داده‌ها (Visualization)در نسخه اولیه، داده‌ها به صورت خطی چاپ می‌شدند؛ هر فرد در یک خط با مشخصاتش.این مدل نمایش برای من جذاب نبود.تصمیم گرفتم داده‌ها را به صورت نمودار نقطه‌ای در ترمینال نمایش دهم.برای رسیدن به نمودار مناسب، چهار نسخه مختلف نوشتم تا در نهایت به مدلی رسیدم که:داده‌ها را به صورت نقطه‌ای نشان می‌دادفاصله واقعی داده‌ها را حفظ می‌کردمحور height و weight مشخص بوداین بخش از پروژه کاملاً طراحی و پیاده‌سازی شخصی خودم بود.Data Visualizationپیاده‌سازی فرآیند یادگیریفرآیند آموزش مدل با استفاده از یک for loop انجام شد.این حلقه شامل مراحل زیر بود:جمع‌آوری تغییرات (Gradient Calculation)محاسبه میانگین تغییراتبه‌روزرسانی پارامترهای مدل (Update a and b)گزارش میانگین خطا (Average Error Report)متغیرهای اصلی مدل:learning_rateepochsدر ابتدا:learning_rate = 0.001epochs = 50,000تمام متغیرهای محاسباتی از نوع float بودند.Float Variableبخش پیش‌بینی و گزارش نتایجپس از آموزش، بخش پیش‌بینی و محاسبه خطا نوشته شد.در نسخه اولیه، نتایج به صورت خطی نمایش داده می‌شدند.اما مشابه مرحله قبل، تصمیم گرفتم این بخش را نیز نموداری کنم.در این مرحله:داده‌های واقعی با علامت *خط رگرسیون با علامت #نمایش داده شدند.پیاده‌سازی این بخش دشوارتر از نمودار اولیه بود و با چندین بار تکرار و اصلاح به نتیجه رسیدم.Linear regression visualizationمشکلات فنی در اجراپس از اجرای اولیه، مشکلات فنی شروع شدند.مشکل اول: Overflowبه دلیل اینکه متغیرها از نوع float بودند، در طول آموزش مدل مقدارها به overflow رسیدند و خروجی‌ها به صورت NaN نمایش داده شدند.راه‌حل:تغییر نوع تمامی متغیرهای محاسباتی از float به double.Double Variableپس از این تغییر، به دلیل دقت و ظرفیت بیشتر double، محاسبات به درستی انجام شدند.مشکل دوم: خطای مدلپس از اجرای موفق، مقدار خطای مدل حدود 12 cm بود که برای من قابل قبول نبود.از آن‌جا که از double استفاده می‌کردم، امکان تنظیم دقیق‌تر پارامترها وجود داشت.تغییرات انجام‌شده:افزایش epochs از 50,000 به 240,000کاهش learning_rate به 0.00045نتیجه:کاهش خطا از حدود 12 cm به حدود 1.08 cmavg error = 12.496cmavg error = 1.8404cmاین کاهش خطا برای من یک پیشرفت جدی محسوب می‌شد.نتیجه نهاییدر پایان، مدل توانست رابطه‌ای خطی بین weight و height یاد بگیرد و با دقت مناسبی پیش‌بینی انجام دهد.این پروژه برای من چند نکته مهم داشت:فهم عملی Gradient Descentدرک تاثیر learning_rateدرک تاثیر epochsاهمیت نوع داده (float vs double) در محاسبات عددیاهمیت Visualization در فهم بهتر الگوریتمجمع‌بندیاین بار کافی بود فقط شروع کنم.نتیجه، پیاده‌سازی یکی از ساده‌ترین اما مهم‌ترین مدل‌های Machine Learning به صورت کامل در C++ بود، بدون استفاده از کتابخانه‌های آماده.برای مشاهده کد کامل می‌توانید به صفحه Github مراجعه کنید.https://github.com/YounesA-L/First.git</description>
                <category>Younes A . L</category>
                <author>Younes A . L</author>
                <pubDate>Fri, 13 Feb 2026 02:05:39 +0330</pubDate>
            </item>
                    <item>
                <title>از یه سریال تا پیدا کردن راهی به سوی آینده</title>
                <link>https://virgool.io/@YounesA_L/%F0%9F%8E%AC%D8%A7%D8%B2-%DB%8C%D9%87-%D8%B3%D8%B1%DB%8C%D8%A7%D9%84-%D8%AA%D8%A7-%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-%D8%B3%D9%88%DB%8C-%D8%A2%DB%8C%D9%86%D8%AF%D9%87-cfxsbweppqv9</link>
                <description>تعطیلات بین دو ترم بود.اون موقع ذهنم درگیر یه چیز شده بود: کار کردن، کسب‌وکار.چند جا شنیده بودم به کسب‌وکاری که تازه شروع میشه میگن «استارتاپ».نمی‌دونم چرا، ولی خود کلمه استارتاپ برام هیجان‌انگیز بود. حس حرکت، شروع، رشد.من به فیلم دیدن علاقه زیادی دارم.با خودم گفتم چرا این کنجکاوی رو با علاقه‌م به فیلم ترکیب نکنم؟ رفتم دنبال فیلم‌هایی که اسمشون «استارتاپ» باشه.دو تا نتیجه اومد. هر دو کره‌ای.من معمولاً فیلم کره‌ای نگاه نمی‌کنم. اولش خواستم بی‌خیالش شم.ولی چون فیلم دیگه‌ای برای دیدن نداشتم، گفتم همینو می‌بینم.و اون تصمیم ساده، مسیر فکری منو تغییر داد.سریال Start-Up درباره راه‌اندازی یه استارتاپ بود، با چاشنی عشق و رقابت.شاید برای بعضی‌ها فقط یه سریال بود، اما برای من انگیزه شد.بعد از تموم شدنش، سه مسیر جلوی من بود:راه‌اندازی استارتاپادامه جدی‌تر مسیر برنامه‌نویسیورود به دنیای بازارهای مالی و سرمایه‌گذاریبعد از کمی فکر کردن، فهمیدم استارتاپ زدن برای منِ الان منطقی نیست.من هنوز اول مسیر یادگیریم و چالش‌های استارتاپ چیزی نیست که فعلاً از پسش بربیام.پس موقتاً گذاشتمش کنار.اما گزینه سوم…بازارهای مالی همیشه برام جذاب بود. حتی قبل‌تر به رشته مدیریت مالی هم علاقه داشتم.تو سریال هم درباره سرمایه‌گذاری و جذب سرمایه زیاد صحبت می‌شد و این موضوع برام هیجان‌انگیز بود.به این نتیجه رسیدم که:در کنار رشد مهارت‌های برنامه‌نویسی، دانش مالی‌ام را هم تقویت کنم.هم برای پول درآوردن.هم برای رسیدن به استقلال مالی.و هم برای اینکه اگر روزی خواستم استارتاپ بزنم، آماده‌تر باشم.چالش بزرگی در شروع نداشتم، اما پیدا کردن کتاب مناسب برای شروع سخت بود.تا قبل از این تقریباً کتاب نمی‌خوندم و نمی‌دونستم از کجا باید شروع کنم.و اما وبلاگ…من همیشه عادت داشتم چیزهایی که یاد می‌گیرم رو در دفترچه‌های کوچیک یادداشت کنم.این کار حس خوبی بهم می‌داد. حس پیشرفت.بعد با خودم فکر کردم اگر همین کار را در یک بستر عمومی انجام بدم، اسمش شد وبلاگ.پس تصمیم گرفتم از این به بعد مسیر یادگیریم رو اینجا ثبت کنم.این وبلاگ قرار نیست درباره موفقیت‌های بزرگ باشه.قرار است درباره مسیر باشه.مسیر یک دانشجوی علوم کامپیوتر که می‌خواهد کدنویسی و بازارهای مالی را کنار هم رشد بده.این فقط شروع کاره ...</description>
                <category>Younes A . L</category>
                <author>Younes A . L</author>
                <pubDate>Wed, 11 Feb 2026 18:08:27 +0330</pubDate>
            </item>
            </channel>
</rss>