<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی آخی</title>
        <link>https://virgool.io/feed/@mahdiakhi</link>
        <description>دانشجو</description>
        <language>fa</language>
        <pubDate>2026-06-16 07:47:18</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/188008/avatar/T0HUxS.png?height=120&amp;width=120</url>
            <title>مهدی آخی</title>
            <link>https://virgool.io/@mahdiakhi</link>
        </image>

                    <item>
                <title>وقتی به ماه نگاه می‌کنم</title>
                <link>https://virgool.io/@mahdiakhi/%D9%88%D9%82%D8%AA%DB%8C-%D8%A8%D9%87-%D9%85%D8%A7%D9%87-%D9%86%DA%AF%D8%A7%D9%87-%D9%85%DB%8C-%DA%A9%D9%86%D9%85-kptvrzlsbfaa</link>
                <description>شما وقتی به ماه نگاه می‌کنید به چی فکر می‌کنید؟خودم به این فکر می‌کنم که در طول صدها هزار سال یا شاید میلیون‌ها سال کلی آدم داشتن به ماه نگاه می‌کردن و می‌کنن. ماه آبجکت و خاطره‌ی مشترک تمام مردم کره‌ی زمین بوده و هست.به این فکر می‌کنم که آدم‌ها در چه حالی داشتن به ماه نگاه می‌کردن؟ ممکنه به کسی گفته باشن وقتی ماه کامل شد اعدام می‌شی. ممکنه به کسی گفته باشن وقتی که ماه کامل شد گرگ می‌شی. شعرا و ادیبانی بودن که ماه براشون مظهر زیبایی و نور در تاریکی بوده. آدم‌هایی بودن که آخرین چیزی که قبل از مرگ دیدن ماه بوده.شب‌هایی بوده که مردم زیر نور ماه کامل جمع می‌شدن و جشن می‌گرفتن و می‌رفتن تااااا ۳۰ شبانه‌روز دیگه.ماه کامل برای بعضی‌ها نشونه‌ی گرگینه‌ها بوده. ماه کامل برای اهالی دریا و ساحل نشین‌ها نشونه‌ی تغییر سطح آب بوده.ماهاحتمالا فرمانده‌هان زیادی در طول تاریخ بودن که قرار حمله رو برای زمانی گذاشتن که ماه در ضعیف‌ترین حالت خودش بوده. چه آدم‌ها و چه قوم‌هایی که در این شب‌ها از بین نرفتن.فاتحان در شب پیروزی ماه رو نگاه می‌کردن و اون رو نشونه‌ی تولد نوری جدید می‌دیدن، شکست‌خوردگان هم احتمالا ماه آخرین چیزی بوده که بهش نگاه کردن.بسیار عشاقی که قرار عروسیشون ماه کامل بعدی بوده و هر شب با اشتیاق بهش خیره می‌شدن.در تمام ادوار تاریخ بهش خیره می‌شدن و رویای قدم زدن روش رو داشتن. یکی می‌گفته پنیریه، یکی می‌گفته چشمه‌ای از نوره، یکی می‌گفته برفیه و.... .احتمالا چندباری به چند نفر فروختنش :) بعضی‌ها اونقدر براشون مقدس بوده که می‌پرستیدنش. خدا می‌دونه چند نفر به قصد رسیدن بهش از کوه‌ها بالا رفتن.چه رسوماتی که به بهانه‌اش شکل نگرفته و چه آئین‌هایی که زمانبندی‌شون بر اساس وضعیت ماه تنظیم نشده. چه آدم‌هایی که برای ماه قربانی نشدن...چه پادشاهان و چه ملکه‌هایی که رویای داشتنش رو نداشتن.چه دخترایی که بهشون می‌گفتن/می‌گن ماه شدی. چه سیاه پوستایی که سرخورده شدن.چه صحنه‌های شگفت‌انگیزی که بشر با چشماش از ماه ندیده! ماه و ستاره‌ها، ماه و دریا، ماه و جنگل، ماه و کوه، ماه و ابر....چه وحشت‌هایی که به خاطر ماه گرفتگی به دل مردم و بزرگان نیفتاده. چه تفسیرهایی که از این اتفاق نشده و چه اتفاقاتی که به این بهانه نیفتادن! چقدر آدم ترسیدن که دیگه هیچوقت ماه رو نبینن، چه آدم‌هایی که از قعر سیاه چاله و زندان فقط ماه رو می‌دیدن.چه فراموش شدگانی که فقط ماه مونسشون بوده و چه افاده‌ای‌هایی که به ماه فخر می‌فروختن.چند نفر تا حالا ماه رو توی خواب دیدن؟ چند نفر برای دیدن ماه دلشون تنگ شده؟ چند نفر آرزو داشتن یه بار دیگه ببیننش؟ چند نفر هر کاری کردن که کامل نشه؟تاااازههه چه فکرها، خیال‌پردازی‌ها، تفسیرها، نتیجه‌گیری‌ها، عقاید، باورها، جریان‌ها، داستان‌ها و تصاویری از ذهن آدم‌هایی می‌گذشته که کل زندگیشون فقط چندتا آدم، طبیعت و حیوانات بوده و نه هیییچ چیز دیگه‌ای و حالا در شب فقط ماه بوده و ظلمت!سرخپوست‌ها، اینکاها، ایرانیان، بربرها، مغول‌ها، بابِلی‌ها، مصریان، اعراب بادیه نشین، بودا، هندی‌ها، چینی‌ها، رومی‌ها، عیلامی‌ها، انسان‌های بعد از جنگ جهانی دوم، دانشمندان عصر حاضر، نئاندرتال‌ها، هوموساپین‌ها، اون میمونه که می‌گن ما همه از اونیم، آدم و حوا.ماه پرستان، یهودی‌ها، بودایی‌ها، مسلمانان، آئین‌های محلی، سرخپوستان، مسیحی‌ها، بت پرستان، آتش پرستان، زرتشتی‌ها، گاو پرست‌ها، فراماسونرها، شیطان پرست‌ها، ادیان مصر باستان، آئین‌های شرقی، فیلسوفان رومی، دانشمندان ناسا، خواجه نصیر الدین طوسی، استیون هاوکینگ، انیشتین، منجمین هندی، رمال‌هایی که ماه رو مرجع سرنوشت انسان می‌دونستن/می‌دونن، کولی‌ها.اینا بخش بسیار ناچیزی از پنجره‌های دیدیه که در طول تاریخ روی به ماه بوده و هست...دوستت دارم ماه عزیز 🌖✍ مَهدی آخیکانال تلگرام من:https://t.me/lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Tue, 24 Feb 2026 23:49:57 +0330</pubDate>
            </item>
                    <item>
                <title>آینده‌ی سئو و تولید محتوای وبسایت با Zero-Click Search</title>
                <link>https://virgool.io/@mahdiakhi/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%DB%8C-%D8%B3%D8%A6%D9%88-%D9%88-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D9%88%D8%A8%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%A7-zero-click-search-z5qwfzro5yz6</link>
                <description>جستجوی بدون کلیک (Zero-Click Search)؛ آینده‌ای که همین حالا شروع شدهاگر دقت کرده باشید، این روزها خیلی وقت‌ها وقتی چیزی را در گوگل جستجو می‌کنیم، جوابمان را همان صفحه‌ی نتایج می‌گیریم و دیگر نیازی به کلیک روی لینک‌ها نداریم. این پدیده با نام Zero-Click Search شناخته می‌شود؛ مفهومی که به این معناست که کاربر پاسخ سؤالش را مستقیماً در صفحه‌ی نتایج جستجو دریافت می‌کند.Zero-Click فقط مربوط به هوش مصنوعی نیستبرخلاف تصور رایج، Zero-Click Search موضوع تازه‌ای نیست و قبل از فراگیر شدن AI هم وجود داشته است.مثلاً:وقتی دمای هوای یک شهر را جستجو می‌کنید و گوگل همان‌جا با یک ویجت، وضعیت هوا را نشان می‌دهد.یا وقتی نام یک مکان یا بیزینس را سرچ می‌کنید و اطلاعاتی مثل آدرس، ساعت کاری و امتیاز کاربران در همان صفحه نمایش داده می‌شود.این‌ها نمونه‌های کلاسیک Zero-Click هستند که سال‌هاست در تجربه‌ی جستجوی کاربران جا افتاده‌اند.نتیجه‌ی گوگل برای دمای هوای ایلام در حالت Zero-Click Searchنتیجه‌ی گوگل در حالت Zero-Click Search برای جستجوی دانشگاه شریفآمارها چه می‌گویند؟گوگل اعلام کرده که در سال ۲۰۲۴ بین ۵۸.۵ تا ۶۰ درصد جستجوها در آمریکا بدون هیچ کلیکی به پایان رسیده‌اند.پیش‌بینی‌ها نشان می‌دهد که با پررنگ‌تر شدن نقش هوش مصنوعی، این عدد تا سال ۲۰۲۶ حتی می‌تواند به ۸۰٪ هم برسد. عددی که برای هر تولیدکننده محتوا یا مارکتر، یک زنگ خطر جدی است.ویجت‌های Zero-Click در گوگلامروز Zero-Click فقط به یک باکس ساده خلاصه نمی‌شود. گوگل از انواع مختلفی از ویجت‌ها برای پاسخ‌دهی مستقیم استفاده می‌کند، از جمله:AI OverviewFeatured SnippetsKnowledge PanelsPeople Also AskLocal PacksDirect Answer Boxesهمه‌ی این‌ها یک هدف مشترک دارند: دادن سریع‌ترین و کامل‌ترین پاسخ بدون خروج کاربر از گوگل.تغییر استراتژی؛ از ترافیک به دیده‌شدناین روند به‌وضوح نشان می‌دهد که استراتژی‌های مارکتینگ و سئو باید از حالت Traffic-Focused به سمت Visibility-First حرکت کنند.یعنی صرفاً گرفتن کلیک کمتر مهم است؛ مهم این است که برند، محتوا یا نام شما در پاسخ‌ها دیده شود، حتی اگر کاربر روی لینک کلیک نکند.توصیه‌های گوگل برای دیده شدن در حالت‌های AIنقش هوش مصنوعی در جستجوی گوگلدر حال حاضر گوگل در دو بخش اصلی از AI به‌صورت مستقیم در سرچ استفاده می‌کند:1. AI Overviewزمانی که یک جستجوی پیچیده انجام می‌دهید، بخشی در بالای نتایج ظاهر می‌شود که:پاسخ‌های خلاصه، سریع و کاربردی ارائه می‌دهدلینک‌هایی به منابع مرتبط پیشنهاد می‌کنددر واقع گوگل تلاش می‌کند «جواب کافی» را همان ابتدا به کاربر بدهد.2. AI ModeAI Mode یک تب جدید در کنار تب‌های معمول (All، Images، Videos و…) است.وقتی موضوع شما نیاز به تحلیل، مقایسه یا بررسی عمیق‌تری دارد، این بخش مثل یک دستیار هوشمند عمل می‌کند و امکان گفتگو با موتور جستجو را فراهم می‌سازد.استفاده‌ی مستقیم گوگل در جستجو در حالت AI Overview و AI Modeآیا برای دیده‌شدن در AI باید کار خاصی انجام داد؟خبر خوب این است که:نیازی به ترفند عجیب یا Schema اختصاصی نیسترعایت اصول استاندارد SEO همچنان کافی استهمچنین ترافیکی که از این فضا وارد سایت می‌شود، در Google Search Console ثبت شده و قابل اندازه‌گیری است.جمع‌بندی: مسیر اجتناب‌ناپذیر جستجومسیر فعلی گوگل و سایر موتورهای جستجو کاملاً مشخص است:ارائه‌ی پاسخ‌های کوتاه، دقیق و فوریکاهش نیاز به کلیکهدایت کاربران به سمت چت‌بات‌ها و محیط‌های تعاملی مثل AI Mode یا Bing AIدر این فضا، محتوا همچنان مهم است، اما نقش آن تغییر کرده. بسیاری از پاسخ‌ها همان‌جا در Overview داده می‌شوند و کاربر دیگر وارد سایت نمی‌شود. این روند با ظهور هوش مصنوعی شدیدتر هم خواهد شد و عملاً رقابت موتورهای جستجو با چت‌بات‌ها را شکل می‌دهد.اگر این موضوعات را کنار مفاهیمی مثل Zero-Click Purchase بگذارید، به‌تدریج یک پازل بزرگ‌تر از آینده‌ی جستجو و مارکتینگ دیجیتال در ذهن‌تان کامل می‌شود.منابع پیشنهادی برای مطالعه بیشترSimilarweb – Zero-Click SearchesGenerative Engine Optimization: How to Dominate AI SearchGoogle Official Website: AI features and your websiteمی‌تونید من رو در تلگرام هم دنبال کنید:@lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Fri, 02 Jan 2026 15:27:36 +0330</pubDate>
            </item>
                    <item>
                <title>دردسر چطور شروع کردن</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1-%DA%86%D8%B7%D9%88%D8%B1-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D8%B1%D8%AF%D9%86-ypaoduveztqt</link>
                <description>توی کلاس‌های دانشگاه و یا دوره‌هایی که به عنوان مدرس در خدمت عزیزان هستم، سوالاتی از قبیل:دوره‌ی خوب برای یادگیری ماشین چی هست؟بریم چیا یاد بگیریم؟ همه چیزو باید یاد بگیریم؟فلان دوره‌ی فلان آموزشگاه خوبه؟لطفا یه دوره برای ریاضیات ML معرفی کنید.و... بسیار پرتکرار هستن.حقیقتش در این زمان که ما هستیم «چطور شروع کردن» از اهمیت کمتری برخورداره و مهم «شروع کردنه». آدما دیگه سخت شروع می‌کنن. دلایل مختلفی هم داره، اونایی که به چشم من میاد رو اشاره می‌کنم:- ترس از شروع کردن.- منابع بسیار زیاد- دو دلی برای شروع کردن(می‌ارزه؟ می‌تونم موفق بشم؟ اشتباه نکنم و الکی عمرم تلف شه! و ...)- کمرنگ شدن ارزش‌های کاری در مقابل سایر ارزش‌ها.اگه واقعا تصمیمتون رو گرفتید که وارد حوزه‌ای بشین(فرقی نداره چی) واردش بشین. اینقدر دنبال چگونگی نباشید. در مورد کامپیوتر یه رازی رو بهتون بگم «کامپیوتر دور ریز نداره». اگه رفتید سراغ بکند و بعدش براتون کاری پیدا نشد(!!!) و خواستید برید ML یاد بگیرین، یک مهندس ML که بکند بلده اولویت بالاتری نسبت به یک مهندس ML خالی داره. چیزهایی که یاد می‌گیرید به شکلی دیگه در سایر بخش‌های مهندسی و علوم کامپیوتر به کارتون میاد.با تاسف می‌گم ولی توی زمونه‌ای که مردم ساعت‌ها حاضرن روی عکس یک همستر توی گوشیشون کلیک کنن تا پولدار بشن، شما با ۵ ۶ درصد تلاش بیشتر نسبت به دیگران می‌تونید خودتونو از اونها جدا کنید. یه زمانی باید حداقل ۶۰ ۷۰ درصد تلاش بیشتر می‌داشتید.در آخر می‌گم اگه می‌خواید ML یاد بگیرید یا جوشکاری یا اقتصاد و از من سوال می‌پرسید که بهترین منبع و راه برای شروع کردن چیه؟ جواب من اینه: اولین نتیجه‌ی مرتبط گوگل و یا هر چیز دیگه‌ای که کمک می‌کنه شما همین الان شروع کنی.</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Thu, 20 Nov 2025 13:57:01 +0330</pubDate>
            </item>
                    <item>
                <title>گل</title>
                <link>https://virgool.io/@mahdiakhi/%DA%AF%D9%84-xnnfehttnuco</link>
                <description>مادربزرگم تازه فوت کرده بودن و این اتفاق خیلی ناگهانی، شوک بزرگی برای خانواده ما بود. از بهشت زهرا برمی‌گشتیم، همه گرفته و غمگین بودن. بعضی خانم‌ها هم لباساشون خاکی و چهره‌هاشون رنگ پریده بود. رسیدیم دم خونه‌ی مادربزرگم، اونجا پر از بنرهای تسلیت و پارچه‌های سیاه بود که از سمت افراد مختلف نصب شده بودن.  چندتا تاج گل بزرگ و دسته گل هم دم خونه بود. منم توی ترافیک دم در مونده بودم و می‌خواستم ماشین رو ببرم یه جایی بذارم. دایی‌ها داشتن بحث می‌کردن که این گل‌ها رو چکار کنن؟ ببریم مسجد، ببریم مزار شهدا، زنگ بزنیم یکی از این گلفروش‌ها بیاد ببره، بذاریم سر کوچه و...همین طور که داشتم نگاه می‌کردم که توی شلوغی اونجا جای پارک پیدا کنم، دیدم مامانم چندتا گل رو از روی اونا کَنده بود و داشت به بچه‌های توی کوچه می‌داد، با همون صورت همیشه مهربونش که حالا غم از دست دادن مادر خیلی شکسته بودش. چهار پنج دقیقه بعدش که ماشین رو جلوتر پارک کردم، برگشتم دیدم چندتا بچه و خانم گل دستشونه و داشتن می‌رفتن یا پیش مادرم بودن و تسلیت می‌گفتن و بغلش می‌کردن.این یکی از آدمیزادی‌ترین لحظه‌هایی بود که توی زندگیم دیدم.خیلی عجیب بود. با لباس سیاه و چشمایی اشک آلود، در یکی از غم‌انگیزترین لحظات عمر یه آدم، زنی داشت به آدما گل می‌داد. بچه کوچیک‌ها می‌رفتن پیشش و پاها یا چادرش رو می‌گرفتن و مادرم هم بهشون گل می‌داد.این چیزی بود که توی تمام زندگیم از مادرم می‌دیدم، محکم، مهربون و امیدوار. توی اون زندگی‌ای که خیلی از مواقع امید توش معنی نداشت.مادر جان چیزهایی توی این ۲۰ و خورده‌ای سال به من یاد دادی که نمی‌دونم چقدر کتاب باید می‌خوندم و چقدر زندگی باید می‌کردم تا تازه متوجهشون می‌شدم.این اشک‌ها هم اذیت می‌کنن موقع نوشتن.مَهدی آخی</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Wed, 19 Nov 2025 15:14:20 +0330</pubDate>
            </item>
                    <item>
                <title>در موردش بلدم ولی نمی‌فهممش</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF%D8%B4-%D8%A8%D9%84%D8%AF%D9%85-%D9%88%D9%84%DB%8C-%D9%86%D9%85%DB%8C-%D9%81%D9%87%D9%85%D9%85%D8%B4-qa7nlj8wruci</link>
                <description>اکثرا ما فقط «در مورد چیزی» می‌دونیم نه این که «واقعا خودش» رو بدونیم. این «در مورد چیزی» دونستن باعث می‌شه ما هیچوقت «واقعا خود اون چیز» رو نفهمیم. به قول آقای آدلر، نویسنده‌ی کتاب‌های یادگیری:دانستن حقایق بسیار در مورد یک مطلب، اغلب مانند ناآگهی از آن، باعث خوب درک نشدن مطلب می‌شود. ما امروزی‌ها آنقدر در حقایق غرق شده‌ایم که به شناختمان صدمه رسیده.یه استادی می‌شناختم که روزی رفتم پیشش تا ببینمش. وارد دفترش که شدم دیدم داره با یک جوانی مصاحبه می‌کنه. می‌خواستم برم بیرون که با دست بهم اشاره کرد همونجا بشینم(دفترش بزرگ بود). نیم‌ساعتی گذشت و مصاحبه تموم شد. اومد پیشم سلام و علیک کردیم.گفت: این آقا برای استخدام دانشگاه و تدریس اومده بود. به نظرت چطور آدمی بود؟گفتم: خوب داشت توضیح می‌داد. چیزایی که پرسیدین خوب در موردشون حرف می‌زد.گفت: مشکل همینه. فقط «در موردشون» حرف می‌زد. یک مشت About بود. چیزهایی که من می‌پرسیدم جوابشون اینقدرها هم طولانی نبود. اما این دوستمون کلی چیز در موردش می‌گفت ولی هیچی از خود اون چیزی نمی‌گفت.بعدش گفت: خیلی از مواقع فقط کافیه به دقت گوش بدی بعدش می‌بینی ۹۹٪ آدم‌ها حواشی و بشقاب دورچین‌های چیزها رو بلدن، نه خود اون چیزها رو. حالم بهم می‌خوره از اینا.رازهای کسب‌وکار موفق.چگونه همسر خود را خوشحال نگه‌داریم.کاربردهای هوش مصنوعی.راه‌های پولدار شدن.هک و تکنیک‌های سوالات کنکور.فیزیک رو با این تکنیک‌ها صد بزن.دعای فلان برای رفع فلان مشکل.About, about, about and about and about and ......مَهدی آخی#هوایی🆔 @lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Fri, 07 Nov 2025 16:09:13 +0330</pubDate>
            </item>
                    <item>
                <title>کس دیگری هم هست</title>
                <link>https://virgool.io/@mahdiakhi/%DA%A9%D8%B3-%D8%AF%DB%8C%DA%AF%D8%B1%DB%8C-%D9%87%D9%85-%D9%87%D8%B3%D8%AA-ivqp0nm0cm0t</link>
                <description>معمولا در مواجهه با چیزهایی غیرقابل تعریف یکی از راه‌هایی که در پیش می‌گیرم توصیف کردن اون چیزه. نظم، حق، عدالت، عشق و غیره. چیزهایی که نمی‌شه براشون تعریف و مرز مشخصی پیدا کرد. دیدگاهم به عشق هم همین بوده و هست[عشق به هر چیزی و نه لزوما به جنس مخالف]. چند سال پیش بود که توی یکی از پادکست‌های مجتبی شکوری تعریفی از عشق شنیدم که برام قابل هضم نبود. نه از این بابت که سنگین بود یا تناقض داشت، از این بابت که خیلی بدیهی بود برام. حتی نه در قالب تعریف عشق، بلکه خود اون جملات هم برام بدیهی بود. تعریف آقای شکوری رو آخر مطلب می‌نویسم.می‌خوام کمی بلند بلند فکر کنم، با خودم می‌گم:آدم وقتی چیزی رو دوست داره حسی بهش دست می‌ده که می‌خواد یه بار دیگه همه چیزهایی که تا قبل از اون دوست داشته رو باهاش تجربه کنه. جاهایی که رفته، غذاهایی که خورده، خاطراتی که داشته. انگار که یه عینک جادویی روی چشماش گذاشته و دوست داره همه چیز رو با این که قبلا دیده ولی یه بار دیگه از پشت اون عینک هم ببینه.آدما وقتی عاشق کسی یا چیزی می‌شن انگار که به اون یه مدادرنگی  می‌دن و می‌برنش جلوی بوم زندگیشون. بهش می‌گن: ببین من تا اینجا تونستم با سلیقه‌ی خودم این طوری رنگش کنم، بیا تو هم مدادرنگی‌هات رو بیار تا باقیش رو با هم رنگ کنیم. آدم عاشق دیوونه‌ی اینه که رنگ اون عشق رو توی جای جای مختلف بوم زندگیش ببینه. کسی که عاشق موسیقیه دوست داره رنگ و بوی موسیقی رو همه جا ببینه، کسی که عاشق یکی می‌شه دوست داره توی لباس‌هاش، غذاهاش، دوستاش، انتخاب‌هاش و خلاصه همه جا رنگ اون عشق رو ببینه. مثل عشق به همسر یا فرزند.آدما وقتی عاشق می‌شن قلم و دفتر داستان زندگیشون رو به دست دیگری می‌سپارن. بهش می‌گن: من تا اینجا رو نوشتم، از این جا به بعد تو هم بنویس. اونجور که خودت هستی بنویس. اصلا طوری بنویس که کاملا مشخص باشه که اینجاها رو کسی غیر از من نوشته. هم با خوب نوشتنت هستم، هم با بدنوشتنت. دوست دارم تو بنویسی.آدما وقتی عاشق می‌شن اولویت‌هاشون تغییر می‌کنه. آدما از روز اول عاشق خودشون هستن، برای خودشون زندگی می‌کنن. اصلا خیلی از چیزها سرچشمه‌اش همین خود-دوستیه وگرنه که سنگ روی سنگ بند نمی‌شد.  خدا رو هم دوست دارن چون قبلش خودشونو دوست دارن و می‌خوان با یک موجود ابدی در پیوند باشن. اصلا همین که عاشق می‌شن هم از همین خود دوستیه. خودشونو دوست دارن، پس می‌رن سراغ بهترین کسی که می‌شناسن و دوست دارن برای خودشون بشه. چون اون کس رو کامل دیدن و خودشونو لایق داشتن اون فرد می‌دونن. ولی وقتی عاشق می‌شن دیگه فقط خودشون تنها نیستن، اون عشق هم اولویت داره. باید چشم پوشی کنن، باید نرم بشن، باید راه بیان، باید اجازه بدن اون هم رد پایی داشته باشه. زیبایی اومدن اون عشق هم به همین ردپاست.وقتی عاشق می‌شی انگار یه چیز دیگه، یه کس دیگه هم هست.چندبخش از متن رو دادم به ChatGPT گفتم برام یه تصویر ساده بکش که توصیفگر این متن باشه. این عکس رو داد بهم:)تعریف مجتبی شکوری از عشق این بود:عشق یعنی پذیرش این حقیقت تلخ که غیر از خودت، دیگری‌ای نیز وجود دارد.خیلی بدیهی به نظر میاد. مگه می‌شه من قبول نکرده باشم کسی غیر از من هم وجود داره! من که مغرور و خودپسند نیستم! اتفاقا من همیشه دیگران رو دوست داشتم. مامانم، بابام، داداشام، دوستام، اون پیرمرده که کمکش می‌کنم، فلانی و و و و. ولی وقتی با چشم باز نگاه می‌کنی می‌بینی که نه، اونقدرها هم بدیهی نیست. کلی چشمبند کوچیک و بزرگ روی چشمات هست که نمی‌ذارن ببینی دیگری‌ای هم وجود داره.چرا می‌گه حقیقت تلخ؟ چون گذشتن از خودت واقعا سخته. به معنی واقعی کلمه گاهی چیز دیگری رو در اولویت قراردادن واقعا سخته. گاهی اما سخت هم نیست ها، نمی‌تونی ببینی کسی دیگه‌ای هم هست. بعدش که متوجه می‌شی، وقتی که اتفاقی افتاده که دیگری رو می‌بینی شوکه می‌شی. خیلی از چیزهایی که داریم باآگاهی اولویت بالاتری نسبت به خودمون بهشون می‌دیم، در واقع در نهایتش باز هم نفعش برای خودمونه. وقتی عاشق چیزی می‌شین بذارید اون رنگ رو به زندگیتون بپاشه، بذارید اون هم توی نوشتن این داستان نقشی داشته باشه[قطعا نه به هر قیمت و روشی!!!]...</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Thu, 21 Aug 2025 20:38:00 +0330</pubDate>
            </item>
                    <item>
                <title>مرتب‌سازی؛ رنجی برای تسکین درد جستجو</title>
                <link>https://virgool.io/@mahdiakhi/%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%B1%D9%86%D8%AC%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%B3%DA%A9%DB%8C%D9%86-%D8%AF%D8%B1%D8%AF-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-onqv8jggeuw4</link>
                <description>می‌شه گفت از اصلی‌ترین دلایل به وجود اومدن کامپیوترهای امروزی، جستجو کردن اطلاعات بوده. گشتن بین اطلاعات یک دفترچه‌ی تلفن، گشتن بین اطلاعات کارمندان یک شرکت، گشتن بین حساب‌های بودجه و غیره. هر چی اطلاعات بیشتر می‌شن گشتن و پیدا کردن بین اونها هم سخت‌تر و پرهزینه‌تر می‌شه.راه جلوگیری از هزینه‌ی زیاد در هنگام جستجو چیه؟ مرتب‌سازی! در واقع ما مرتب می‌کنیم چون می‌خوایم بعدش پیدا کنیم:)تمام زندگیمون همینه. کتاب‌ها رو مرتب می‌کنیم یا قفسه‌های فروشگاه رو طوری می‌چینیم که مشتری بتونه راحت‌تر چیزی که می‌خواد رو پیدا کنه.آیا مرتب‌سازی هم بدون هزینه و درده؟ خب قطعا نه. چه توی کامپیوتر و چه توی زندگی روزمره، مرتب‌سازی عملی هزینه‌بره. شما فرض کن هر وقت بخوای یه کتاب جدید رو برگردونی به کتابخونه باید بگردی جاش رو پیدا کنی! یا هر وقت بخوای لباسی رو به کمد برگردونی هم همینطور.خب این چه کاریه؟ بازم که دارم هزینه می‌دم!تعادل عزیزان؛ تعادل کلید حل این رنج دو طرفه است.هر وقت چیزی رو می‌خواید مرتب کنید باید ببینید چقدر باید مرتب کنم؟ آیا همین که جوراب‌ها رو بذارم یه گوشه کافی نیست؟ حتما باید بر اساس سایز یا رنگ هم مرتب کنم؟ مگه من چقدر در روز رو صرف پیدا کردن کتابم می‌کنم که نیاز باشه کتاب‌ها رو دسته‌بندی کنم و دسته‌بندی‌ها رو هم مرتب؟! اصلا مگه من چقدر کتاب دارم؟می‌بینید توی این چندتا مثالی که زدم یه سری چیزهایی هست که شاخک‌های شما رو تکون می‌ده. تعداد دفعات گشتن، اندازه‌ی کل نمونه‌ها، زمان مورد نیاز برای درج آیتم بدون بهم خوردن ترتیب و ... .فرض کنید من میزی دارم که یه سری کتاب رو همین شکلی روی هم تلنبار کردم اونجا. هر دفعه که کتابی رو برمی‌گردونم بدون رعایت نظم خاصی می‌ذارمش بالای اون کتاب‌ها. قبول دارید که همواره کتابی که بیشترین استفاده رو داره جزو بالاترین‌هاست؟ بدون این که مرتبش کنم دارم چیزی که بیشترین استفاده رو ازش می‌کنم در دم‌دست‌ترین حالت ممکن قرار می‌دم. اینجا هم دارم به نوعی مرتب‌سازی می‌کنم(شاید به مفهوم کَش اشاره کنم بد نباشه).دفعه‌ی بعد که خیلی مرتب‌سازی یا گشتن روی اعصابتون بود، این مطلب رو یادتون بیارید. این شکلی شاید حتی گذاشتن جعبه ابزار توی دستشویی‌ای که همیشه خراب می‌شه هم منطقی به نظر بیاد :)مهدی آخیکانال من در تلگرام: @lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Tue, 19 Aug 2025 22:19:57 +0330</pubDate>
            </item>
                    <item>
                <title>تشابه تکامل بشریت و تکامل مغز یک انسان</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AA%D8%B4%D8%A7%D8%A8%D9%87-%D8%AA%DA%A9%D8%A7%D9%85%D9%84-%D8%A8%D8%B4%D8%B1%DB%8C%D8%AA-%D9%88-%D8%AA%DA%A9%D8%A7%D9%85%D9%84-%D9%85%D8%BA%D8%B2-%DB%8C%DA%A9-%D8%A7%D9%86%D8%B3%D8%A7%D9%86-rofgh8kmcj6r</link>
                <description>روی صندلیم نشستم و به این فکر می‌کنم که تکامل مغز یک انسان چقدر شبیه به تکامل تمام بشریت از اول تا همین الانه. انسان‌های اولیه در ذهن من انسان‌هایی معدود با ذهنی تکامل نیافته و ساده هستن. این انسان‌ها تمام روزشون/فکر و ذکرشون/نیازشون به رفع نیازهای بسیار اساسی می‌گذشته. نیازهایی مثل خوراک، امنیت، پیدا کردن جای مناسب و از این قبیل چیزها. اصلا هم درکی از پیشرفت و تعالی و بریم بجنگیم یه جایی رو بگیریم و این چیزها نداشتن. می‌جنگیدن فقط در صورتی که منافعشون یا زندگیشون به خطر می‌افتاد. روابط بین این آدما ساده بود. این خیلی شبیه به ذهن یک نوزاده همونقدر ساده، همونقدر نیازمند به بقا.کم کم آدم‌ها بیشتر شدن، پیشرفت کردن، نیازهاشون هم بیشتر شد و روابطشون هم به همچنین. دیگه فقط غذا و امنیت نبود که ارزش جنگیدن داشت. روابط بین آدم‌ها هم همیش پیچیده‌تر می‌شد. روابط خونی گسترده‌تر شدن، روابط کاری و دوستی به وجود اومدن و همین طور پیشرفته‌تر. ذهن آدم هم چنین روالی داره. کم کم سلول‌های خاکستری مغز بیشتر می‌شن. بعد ارتباط بین این سلول‌های خاکستری بیشتر می‌شه و شبکه‌های پیچیده‌تری به وجود میارن. هر چقدر انسان‌ها در طول تاریخ تخصص بیشتری کسب کردن، چیزهای بیشتری کشف و اختراع کردن الگوهای جدیدتری از همکاری و پیوند بین انسان‌ها به وجود اومد که پیچیده‌ترین‌هاشون‌ رو الان در قالب شبکه‌های اجتماعی و شرکت‌ها و کشورهای بزرگ می‌بینیم.این هم خیلی شبیه به مغز انسانه. هر زمانی که ما چیزی رو یاد می‌گیریم، تجربیات جدیدی به دست میاریم، شهودی نو در خود میابیم در واقع نورون‌های مغزی ما دارن شبکه‌ها و اتصالات شکل می‌دن(بهش می‌گن مسیر عصبی/الگوهای عصبی) هر چی چیزهای جدیدتری یاد بگیریم این پیوندها پیچیده‌تر می‌شن.بخوام تصویر بزرگی از این دید براتون بگم:کره‌ی زمین رو مغز در نظر می‌گیرم، آدم‌ها رو سلول‌های عصبی. تاریخ کره‌ی زمین(از زمان انسان‌ها) رو هم طول عمر یک انسان در نظر می‌گیرم.حالا با این توصیف: این مغز اول که به وجود اومده تعداد کم‌تری نورون داشته با الگوهای ساده که کارشون رفع نیازهای اولیه بود. هی جلوتر رفته و هی تعداد این نورون‌ها بیشتر شده و روابط بینشون پیچیده‌تر شده. الگوهای جدید به وجود اومدن و .... . الان اون مغز اولیه با تعداد سلول کم و دامنه‌ی فهم و عملیاتی کم، تبدیل به مغزی پیچیده با تعداد سلول بیشتر، پیچدگی بیشتر و البته فهم و عملیاتی بیشتر شده.به نظرم جالبه این! قبلا هم توی کانالم یه چیزی مشابهش  گفته بودم.#هوایی</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Fri, 06 Jun 2025 18:51:57 +0330</pubDate>
            </item>
                    <item>
                <title>چراغ قرمزها هم دیگه قرمز نیستن...</title>
                <link>https://virgool.io/@mahdiakhi/%DA%86%D8%B1%D8%A7%D8%BA-%D9%82%D8%B1%D9%85%D8%B2%D9%87%D8%A7-%D9%87%D9%85-%D8%AF%DB%8C%DA%AF%D9%87-%D9%82%D8%B1%D9%85%D8%B2-%D9%86%DB%8C%D8%B3%D8%AA%D9%86-cyeh8lmvyyo9</link>
                <description>می‌دونی آقای آخی ما هیچیمون به هیچی نمی‌خوره. سال‌هایی که آمریکا بودم یه چیزی که از مردمشون دیدم و ازشون یاد گرفتم این بود که هر چیزی باید جای خودش باشه. اونجا مردم وقت کار، فقط کار می‌کردن. نه موبایل چک می‌کردن نه بازی می‌کردن فقط کار. انگار صاحب شرکت بودن و برای خودشون کار می‌کردن. وقتی می‌رفتن تفریح، مثلا می‌رفتن کلاب یا مسافرت از تمام دنیا فارغ بودن. انگار اصلا معنی زندگیشون همین تفریح کردنشونه. وقتی می‌رفتن کلیسا با حضور قلب می‌رفتن کلیسا.من ۷۰ ۸۰ سال از خدا عمر گرفتم به خیلی از کشورهای جهان سفر کردم و زندگی کردم اما هیچ جا، حتی توی خونه‌ی خدا هم، نمازهایی که توی آمریکا می‌خوندم رو نخوندم. اینقدر که به من می‌چسبید و کیف می‌کردم از نماز خوندن.نمی‌دونم مردمشون هنوزم اینجور هستن یا نه؟ نسل جدیدشون این خصلت‌ها رو حفظ کردن یا تغییر کردن.اینجا ولی رفتیم سر کار داریم موبایل بازی می‌کنیم.چراغ قرمزه ولی ماشین‌ها دارن رد می‌شن. حتی چراغ قرمز هم قرمز نیست. می‌نویسه ۳۰ ثانیه قرمزه ولی می‌بینی در زمان شمارش معکوس روی ۷ ثانیه یک دقیقه ثابت می‌مونه. همه هم دارن ازش رد می‌شن.مسجد درست کردیم کسی نماز نمی‌خونه.دانشجوییم، اومدیم دانشگاه نه کسی چیزی یاد می‌گیره و نه کسی چیزی یاد می‌ده.می‌خوایم بخوابیم فکر زندگی‌ایم فکر درگیری‌های کاریمون. می‌خوایم بریم تفریح و مسافرت، کارمون رو با خودمون می‌بریم.نماینده فرستادیم مجلس، داره استان اداره می‌کنه.روحانی آوردیم مسجد، متعلق به یه باندیه.چیزها دیگه رنگ خودشون رو ندارن توی زندگی ما. همه چیز رو قاطی کردیم. نه کارمون کاره، نه تفریحمون تفریح، نه قانونمون قانون، نه عبادتمون عبادت. رنگ‌های اینا، طعم‌های اینا قاطی شده. انگار می‌ری نمک بخوری ولی نمکش هم شوره و هم ‌شیرین. روز‌ به روز هم روانمون بیمارتر و ضعیف‌تر می‌شه. کم توان‌تر می‌شیم، کم‌فهم‌تر می‌شیم. نه می‌تونیم بفهمیم، نه می‌تونیم بفهمونیم.خدا آخر و عاقبت همه‌مون رو ختم به خیر کنه.صحنه‌ای از قرار ملاقات با آقایی مسن و دنیا دیده.کانال من: @lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Fri, 23 May 2025 17:05:42 +0330</pubDate>
            </item>
                    <item>
                <title>تصمیم سخت؛ جنگ اعداد و ارقام یا ناز کردن ارزش‌ها؟</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AA%D8%B5%D9%85%DB%8C%D9%85-%D8%B3%D8%AE%D8%AA-%D8%AC%D9%86%DA%AF-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D9%88-%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%DB%8C%D8%A7-%D9%86%D8%A7%D8%B2-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D8%B1%D8%B2%D8%B4-%D9%87%D8%A7-svqffhyjfk7g</link>
                <description>ماها هر روز کلی تصمیم می‌گیریم. بعضی‌ها ساده هستن اما بعضی‌هاشون خیلی سختن.  اگه تا اسم تصمیم سخت رو می‌شنوید به ازدواج و تحصیل و... فکر می‌کنید باید بگم اشتباه می‌کنید. انتخاب یک صبحونه یا حتی جای پارک هم می‌تونه چالش زیادی داشته باشه. فرض کنید می‌خواید صبحونه بخورید کدوم رو انتخاب می‌کنید: «یک نان جو و یک لیوان شیر» یا «یک کیک شکلاتی».هر روز که می‌خواید از بیرون غذا بگیرید درگیر این انتخاب هستید. یه پیتزا یا مرغ سوخاری سفارش بدم یا یه سالاد؟ دوغ بخورم یا نوشابه؟ با دوستم برم بیرون یا بشینم این کار رو تموم کنم؟ و... . آیا اینجا عدد یا رقمی دخیل هست زیاد؟ احتمالا نه. اگر هم باشه اونقدر پر رنگ نیست. پس چیه که اینقدر انتخاب بین حتی دوغ و نوشابه رو سخت می‌کنه؟فرض کنید می‌خواید یه ماشین بخرید یا می‌خواین شغلتون رو عوض کنید. یه موقعیت شغلی واضحا داره بهتون پول بیشتری رو پیشنهاد می‌ده و یه موقعیت شغلی دیگه داره بهتون همکارهای گردن کلفتی رو پیشنهاد می‌ده. اونقدرها ساده نیست بین اینها انتخاب کردن. گاهی اگه اون موقعیت شغلی با حقوق بیشتر حتی اگه پیشنهادش رو دو برابر کنه هم بازم نمی‌تونید بگید خب این که بدیهیه می‌رم اینجا حقوق بیشتر می‌گیرم. ته دلتون باز هم درگیر انتخاب هستید. حتی اینجا که عدد هست باز هم تصمیم سخته. وقتی تصمیمگیری سخت می‌شه، در واقع دیگه بحث سر اعداد نیست، بلکه سر چیزهاییه که نمی‌شه زیادی به اعداد مدلشون کرد. دارم در مورد ارزش‌ها صحبت می‌کنم. سلامتی یک صبحونه ساده یا مزه‌ی بهشتی یه کیک شکلاتی خوشمزه؟دو سه سال پیش چند ماهی رو پای تحقیق و یاد گرفتن در مورد تصمیم‌های سخت گذاشتم. چندتا کتاب و مقاله خوندم و چندتایی هم ویدئو و مستند دیدم. هر جایی انتخاب‌ها داره سخت می‌شه، احتمالا پای ارزش‌های شماست که در میون هستش(نه همیشه. مثلا آینده اندیشی هم می‌تونه سخت کنه انتخاب رو). انتخاب‌ها ممکنه از دید ناظر بیرونی خیلی بدیهی باشه. مثلا دوستتون بگه خب معلومه دیوونه فکر کردن نداره که! برو سر اون کاری که پول بیشتری بهت می‌دن. ولی شما توی اون کفه‌ی ترازو ارزش یادگیری و شان اجتماعی رو گذاشتین که از بد روزگار نمی‌شه زیاد با عدد سنجیدش. اینجور موقعیت‌ها زمان خیلی خوبی برای شناختن خودمون و اطرافیانمون هستش. ممکنه یک انتخاب خیلی ساده مثل صبحونه باشه ولی وقتی به سختی می‌افتیم توی انتخابش در واقع داره پایبندی به ارزش‌هامون محک می‌خوره و می‌تونیم خودمون رو بشناسیم. این روزها باز هم درگیر انتخاب‌هایی هستم که این کفه‌های ترازوی غیرقابل اندازه گیری مقابل هم قرار گرفتن. اینجا لینک یه سخنرانی تد رو براتون می‌ذارم که پروفسور چانگ از دانشگاه آکسفورد در مورد تصمیم‌های سخت و نحوه‌ی برخورد با اونها صحبت‌های خوبی رو می‌کنه. چیز خفنی نیست ولی برای شروع خوبه.لینک ویدئومَهدی آخیکانال من در تلگرام: https://t.me/lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Tue, 07 Jan 2025 20:56:31 +0330</pubDate>
            </item>
                    <item>
                <title>سرکشی هنرمندانه</title>
                <link>https://virgool.io/@mahdiakhi/%D8%B3%D8%B1%DA%A9%D8%B4%DB%8C-%D9%87%D9%86%D8%B1%D9%85%D9%86%D8%AF%D8%A7%D9%86%D9%87-q66nlc12ojke</link>
                <description> اگر کسی از ساختار جملات تعدی نمی‌کرد و کلمات را خلاف عادت پس و پیش نمی‌کرد، هیچگاه شاعری زاده نمی‌شد. شاعر را می‌توان برهم‌زننده‌ی نظم جملات معمول دانست.اگر کسی در رویای خود دنیا را طور دیگری تصویر نمی‌کرد هیچوقت نقاشی‌های مدهوش‌کننده کشیده نمی‌شدند. نقاش همان فردی است که دنیا را خارج از ساختار و نظمش تصور کرده و به بند بوم کشیده.اگر کسی زندگی را طور دیگری و خارج از دردها و ظلم‌ها تصور نمی‌کرد هیچوقت قهرمانان وجود نداشتند. قهرمان همان بچه‌ی شیطان و حرف گوش نکنی است که جرات فکر کردن به گونه‌ای ناآشنا را داشته.اگر کسی به درستی آنچه هست شک نمی‌کرد هیچوقت دانشمندی نمی‌درخشید. دانشمند همان آدمی است که در مقابل قوانین و عادات لا ریب فیه، چرا می‌آورد.می‌بینید سرکشی همیشه هم بد نیست. سرکشی‌ای هنرمندانه، سرکشی‌ای که در پس اندیشه‌ای ارزشمند، ذهنی زیبا و ارزش‌هایی متعالی جان می‌گیرد. مرز باریکی بین بی‌نظمی/یاغیگری/بی‌سوادی و شاعری/هنرمندی/قهرمانی/دانشمندی وجود دارد که اخلاقیات/ذوق/دانایی آن را ترسیم می‌کند.</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Thu, 05 Dec 2024 00:56:52 +0330</pubDate>
            </item>
                    <item>
                <title>کاهش ابعاد در مشکلات زندگی!</title>
                <link>https://virgool.io/@mahdiakhi/%DA%A9%D8%A7%D9%87%D8%B4-%D8%A7%D8%A8%D8%B9%D8%A7%D8%AF-%D8%AF%D8%B1-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-kl4jmt7dxe2b</link>
                <description>عکس از میدجرنی!شماهایی که از من بیشتر AI کار کردین می‌دونید که مفهومی وجود داره تحت عنوان «کاهش ابعاد» یا به همون اسم خارجکیش Dimension Reduction. این مفهوم می‌گه وقتی توی یه مسئله‌ی یادگیری ماشین تعداد ویژگی‌ها(ورودی‌ها) زیاد می‌شه دردسرهاش هم زیاد می‌شه. دردسرهایی مثل هزینه‌ی پردازشی زیاد، هم‌پوشانی ویژگی‌ها و غیره. این مفهوم البته توی خیلی جاهای دیگه هم کاربرد داره و کلا هر جایی مسئله‌ای هست خب حتما ساده‌سازی مسئله هم هست. اما چرا باید ابعاد مسئله رو کم کنیم؟ اگه ابعاد مسئله رو کم کنیم(به نوعی داریم ساده‌سازی می‌کنیم) آیا مسئله خراب نمی‌شه؟ جزئیات مربوط به مسئله از بین نمی‌ره؟صحبت کردن در باب ساده‌سازی مسئله شاید یه ذره صحبت از بدیهیات باشه ولی اشارکی می‌کنیم.  این که شما بتونید فاکتورهای تعیین‌کننده‌ی مسئله رو کاهش بدید به شما کمک می‌کنه اون مسئله رو زودتر و با صرف منابع کمتری حل کنید. پیچیدگی مسئله رو کاهش بدید. همچنین می‌شه به‌ راه حلی دست پیدا کرد که جنرال‌تره و قابل تعمیم به مسائل مشابه هم هست. گاهی حتی این ساده‌سازی باعث می‌شه مسئله قابل حل بشه و این خیلی مهمه.اما سوال دوم: اگه ما ابعاد مسئله رو کاهش بدیم آیا مسئله گم نمی‌شه؟جوابش اینه که چرا گم می‌شه. اما از یه جایی به بعد. این که شما بتونید ویژگی‌هایی رو پیدا کنید که حذف کردنشون(یا ادغام کردنشون) تاثیر چندانی روی مسئله نذاره واقعا هنره. جاهایی مثل ماشین لرنینگ براش تکنیک‌های زیادی داره. مثلا یه چیزی مثل تحلیل حساسیت(فکر کنم بهش همبستگی یا ضریب همبستگی بالا هم بگن) می‌گه که اگه رفتار دوتا ویژگی خیلی شبیه به همه، احتمالا می‌تونی یکی از اونها رو حذف کنی. گاهی ممکنه حذف کردن یه ویژگی روی نتیجه‌ی نهایی تاثیر داشته باشه آیا نباید اونو حذف کرد؟ اینجا برمی‌گردیم به مبحث شیرین هزینه/فایده. اگه اون ویژگی رو حذف کنی چی به دست میاری؟ و چی از دست می‌دی؟ ممکنه اون ویژگی رو حذف کنی یه بهبود خفنی هم روی سرعت حل حاصل بشه ولی از دقت مسئله ۳ درصد کم بشه. آیا این برای مسئله‌ی شما اوکیه؟ باید جواب این سوال رو پیدا کنید.برای منی که از مهندسی نرم‌افزار سراغ هوش رفتم اما این مفهوم یادآور مفهوم شیرین «انتزاع» هم هست. چشم پوشی از جزئیات غیرضروری. ۱۰ ۱۲ سالی هست که توی این کارها هستم و این مدت به اندازه‌ی خودم تکنیک و روش و مسئله و غیره دیدم. کلی هم متنوع بودن. اما چیزی که از مفهوم انتزاع و یا کاهش ابعاد به یاد من موند و توی زندگیم به کار گرفتم همیشه ثابت بوده.یاد گرفتم توی بحران‌ها و مشکلات زندگی یکی از اولین کارهایی که باید انجام بدم کاهش ابعاد اون مشکله. چند نفر هستن که واقعا اون مشکل بهشون مرتبطه و توی اون مشکل تاثیرگذار هستن؟ یادم نمیاد در بحرانی‌ترین حالت بیش از سه چهار نفر بوده باشن. چه چیزهایی روی اون مشکل زندگی من تاثیر داشتن و باید واقعا روشون فکر می‌کردم و ازشون برای حل مسئله کمک می‌گرفتم؟ کمتر از ۴تا غالبا. گاهی واقعا به این مرحله رسیدم که یکی از فاکتورها رو که حذف کردم تونستم مسئله رو حل کنم(تا قبل از اون حل نمی‌شد). باید سعی کنید به هر ویژگی به اندازه‌ی تاثیرش وزن بدید نه بیشتر و نه کمتر(مگر آگاهانه و با هدف گردوندن بازی). وقتی توی مشکلی گیر می‌کنید یا می‌خواید تصمیم مهمی بگیرید یا کلا سردرگم می‌شین، یکی از اولین کارهایی که باید انجام بدید کاهش ابعاد مسئله است. سخته، جرات می‌خواد، جسارت می‌خواد ولی راهشه. یه سری چیزها رو از دید خودم می‌گم. چیزهایی که تجربه‌شون کردم و برای من هستن و لزوما ممکنه برای شما کار نکنن ولی خب بد نیست ببینید دیگه.اگه الان درگیر مشکلی هستید(خانوادگی مخصوصا) یا در آینده درگیر مشکلی شدین. اول سعی کنید ذهنتون رو آروم کنید.بعدش یه کاغذ و قلم بیارید و شروع کنید به نوشتن فاکتورها و افرادی که این وضعیت بهشون ارتباط داره. دونه دونه بهشون نگاه کنید. چقدر این مشکل بهش مربوطه؟ ایا توی مشکلی بین شما و مادرتون دوستتون مهمه؟ خاله‌تون مهمه؟ اگه این مشکل حل بشه/نشه چه تاثیری روی این فرد داره؟ این فرد چه وزنی داره توی حل این مسئله؟ چقدر دردسر داره ایجاد می‌کنه؟ آیا توی تصمیم مهاجرتتون فلان فاکتور مهمه؟ چقدر مهمه؟ فلان حس مهمه؟ کجا مهمه؟ اگه نباشه چه تاثیری توی حل مسئله داره. اگه در نظرش بگیرم/نگیرم چی می‌شه؟نوشتن این حرف‌ها ساده است حقیقتش(سرعت تایپم هم بالاست سه سوت می‌نویسم) اما عملی کردنشون سخته. بعضی موانعش رو هم بهتون می‌گم: گیج شدن توی اون شرایط، رودربایستی با افراد، پا گذاشتن روی تفکرات(که خودتم می‌دونی در اینجا چرت هستن و مهم نیستن ولی همراهتن)، گنگ بودن وزن‌هایی که می‌دیم و... . چطور این موانع رو رفع کردم؟ تمرین حقیقتش و تلاش در تقویت جهان بینی. التجربه الفوق العلم. مشورت گرفتن هم می‌تونه خیلی مفید باشه. مشورت کردن نه با پریسا جون و داش ممد. با آدم دانا. توی مشورت گرفتن یه چیزی برای من خیلی مشخص شده، این که باید طوری به طرف شرایط رو منتقل کنی و شرح بدی که طرف مخش سوگیری نکنه. پیش میاد که افراد میان پیش من برای مشورت(کارهای فنی یا مثلا مسائل اینچنینی) شرح مسئله رو که می‌گه درجا بهش می‌گم داداش تو اصلا نمی‌خوای مسئله حل بشه. چون طوری به من منتقل کردی که من هم کاملا نظر تو رو گرفتم. تو نیاز به مشورت نداشتی، نیاز به تایید داشتی. برای همین بهتون توصیه می‌کنم که حتما این مورد رو در نظر داشته باشید. اون فرد مشاور می‌تونه بهتون کمک کنه که ابعاد کم‌وزن یا بی‌وزن رو راحت‌تر پیدا کنید و البته به ویژگی‌های باقی‌مونده هم وزن مناسبی نسبت بدید.کانال من:  @lifeAsAService</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Sun, 17 Nov 2024 02:31:19 +0330</pubDate>
            </item>
                    <item>
                <title>استفاده از هوش مصنوعی برای برنامه‌نویسی</title>
                <link>https://virgool.io/metisai/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-oifcwmrl8yyq</link>
                <description>این روزها دیگه هوش مصنوعی همه‌جا هست. از دستیارهای نوشتن گرفته تا چت‌بات‌ها و کلی چیزهای دیگه. برنامه‌نویسی از اون بخش‌هاییه که هوش مصنوعی خیلی زود بهش رسید و تونست تغییرات زیادی توش ایجاد کنه. شاید مهیج‌ترین این اتفاقات دستیارهای برنامه‌نویسی باشن. برنامه‌هایی که به ما توی نوشتن کد کمک می‌کنن. نه تنها توی تکمیل کردن دستوری که داریم می‌نویسیم، بلکه فراتر از اون می‌تونن توی این کارها هم به ما کمک کنن:براشون یه توصیف از کاری که می‌خوایم انجام بدیم می‌نویسیم و اونا برامون کدش رو می‌نویسن.کدی که نوشتیم رو بهشون می‌دیم که برامون بهینه‌سازی انجام بدن یا کد رو تمیزتر کنن.خطایی که از کد می‌گیریم رو به همراه کد بهشون می‌دیم تا برامون کد رو اصلاح کنن.برای کدی که نوشتیم تست می‌نویسن.کدی رو که توی یک زبان برنامه‌نویسی نوشتیم، به زبان دیگه برامون می‌نویسن.کدی رو که متوجه نمی‌شیم برامون توضیح می‌دن.کدی که نوشتیم رو برامون تغییر می‌دن و نیاز نیست که دیگه کلی باهاش سروکله بزنیم.چیزی که بلد نیستیم رو برامون توضیح می‌دن و می‌تونن توی فهمیدنش بهمون کمک کنن.و...حتما شما هم مثل من از دیدن و شنیدن این چیزها به وجد میاید و دوست دارید شما هم از این قابلیت‌ها استفاده کنید. حالا چطور برای خودمون یه دستیار هوشمند داشته باشیم که توی کد نویسی بهمون کمک کنه؟معروف‌ترین این دستیارها Copilot هستش. این ابزار که بار اول توسط Github ارائه شد توی زمان خودش کلی سروصدا کرد و هنوز هم جزو ابزارهای پیشرو حساب می‌شه. بعد از مدتی شرکت مایکروسافت این ابزار رو تبدیل به یک ابزار با کارکرد عمومی تبدیل کرد که دیگه به برنامه‌نویسی محدود نبود و می‌شد تقریبا در مورد همه چیز ازش کمک گرفت. اما هنوز هم Github این ابزار رو به صورت تخصصی برای برنامه‌نویسی ارائه می‌ده. استفاده از کوپایلت برای ما ایرانی‌ها اما به این سادگی‌ها هم نیست مسائل تحریم و فیلترینگ باعث شده که نتونیم اشتراک این ابزار رو به راحتی تهیه کنیم. اما نگران نباشید! ابزارهای متن‌بازی معرفی شدن که به ما این قابلیت رو می‌دن که ما هم بتونیم از توانایی‌های دستیارهای هوش مصنوعی توی کد زدن استفاده کنیم. کافیه یکی از این ابزارها رو انتخاب کنیم و اونو به یک مدل زبانی وصل کنیم، تمام! اینجا می‌خوام بهتون یاد بدیم چطوری می‌شه با کمک متیس یه دستیار برنامه‌نویسی برای خودمون داشته باشیم.Continue AIشرکت Continue AI ابزاری رو برای ساخت دستیارهای هوش مصنوعی داره که به شما اجازه می‌ده این دستیارها رو با هر مدل‌ زبانی از هر شرکتی که دوست دارید بسازید. این ابزارها به صورت اکستنشن برای VSCode و محصولات شرکت JetBrains ارائه شدن. دانلود و استفاده از این ابزار هم برای هر دوی این پلتفرم‌ها رایگان و بدون نیاز به دسترسی خاصی هستش.قابلیت‌هاچت کردن با مدل‌های هوش مصنوعی در محیط کد از ویژگی‌هاییه که شما رو هیجان زده می‌کنه. اگه در زمان برنامه‌نویسی برای شما سوالی پیش اومد یا می‌خواستید کاری انجام بدید، مثلا یک کد رو بفهمید یا هر کار دیگه، می‌تونید ازش استفاده کنید. برای این کار کافیه بعد از نصب روی لوگوی اون کلیک کنید تا چت‌باکس براتون باز بشه.دستیار هوشمند برنامه‌نویسیتکمیل کردن کد هم یکی دیگه از قابلیت‌های این دستیار هستش. زمانی که شما در حال نوشتن کد هستین به خاطر این که سرعت و دقت کدنویسیتون بالا بره دائما به شما پیشنهاداتی می‌ده که شما با زدن دکمه‌ی tab می‌تونید اونها رو قبول کنید. همچنین کلی شرت کات داره که بعد از نصب بهتون نشون داده می‌شن و بهتون کمک می‌کنن که بتونید سریع‌تر و موثرتر ازش استفاده کنید. مثلا یه تیکه کد رو انتخاب کنید و بخواید اونو بازنویسی کنید.دستیار هوش مصنوعی در VSCodeروی سیستمتون VSCode رو باز کنید و از منوی سمت راست وارد بخش Extensions بشید.بخش اکستنشن‌ها در VSCode 
توی قسمت جستجو «Continue AI» رو جستجو کنید و بعد از این که براتون پیدا شد روی install کلیک کنید و صبر کنید تا براتون نصب بشه. جستجوی Continue AIبعد از این که نصب شد مطابق تصویر پایین، توی گوشه‌ی پایین سمت راست برای شما یک بخش میاد به نام Continue روی اون کلیک کنید.بعد از کلیک روی اون توی بخش سرچ برای شما گزینه‌هایی که می‌تونید با این اکستنشن داشته باشید باز می‌شه. از این بخش روی «Configure autocomplete options» کلیک کنید تا فایل config.json براتون باز بشه. دسترسی به تنظیمات Continue.aiاین فایل برای تنظیمات مربوط به Continue هستش. تنظیماتی مثل این که از چه مدل‌هایی استفاده بشه، چه پرامپ‌هایی نوشته بشه و کلی چیزهای دیگه رو می‌تونید اینجا انجام بدید. این لینک شما رو به مستندات مربوط به تنظیمات اکستنشن در سایت رسمی می‌بره. حالا فقط کافیه تنظیمات مدل زبانی رو اضافه کنید.اتصال به متیسبعد از نصب اکستنشن نوبت به این می‌رسه که اون رو به یک مدل زبانی وصل کنید. در واقع این اکستنشن رابطی هست که شما رو به یک هوش مصنوعی وصل کنه. اما چطور این کار رو انجام بدید؟ ما توی متیس برای شما این قابلیت رو فراهم کردیم که به راحتی بتونید هر مدل زبانی‌ای که نیاز داشتید رو استفاده کنید. کافیه که وارد سایت متیس به نشانی https://metisai.ir بشید و اگه اکانت ندارید ثبت نام کنید. متیس به صورت پیش فرض به تمام کاربرانی که به تازگی ثبت نام می‌کنن اعتبار اولیه هدیه می‌ده و شما می‌تونید ازش استفاده کنید. بعد از این که وارد متیس شدین، از منوی سمت راست روی گزینه‌ی «کلیدهای API» کلیک کنید و برای خودتون یک API Key بگیرید. محتوای فایل config.json رو پاک کنید و از تنظیماتی که پایین‌تر براتون گذاشتیم استفاده کنید. این تنظیمات رو توی فایل config.json کپی کنید و به جای Metis-API-Key کلیدی که گرفتید رو قرار بدید، فایل رو ذخیره کنید و از دستیار هوش مصنوعی لذت ببرید :) https://gist.github.com/mahdiAkhi/f78f23aeaa217241023e7c4237350e85 متیس امکان استفاده از تمام مدل‌های زبانی رو برای شما فراهم کرده و شما هر لحظه که بخواید می‌تونید از طریق تغییر تنظیمات هر مدلی که می‌خواید رو انتخاب کنید. تمام مدل‌های OpenAI، Cohere، Claude, Mistral و Llama برای شما در دسترس هستن. همچنین دیگه نیاز نیست نگران پرداخت دلاری و استفاده از فیلترشکن باشید چون با متیس می‌تونید حسابتون رو به راحتی شارژ کنید و چون متیس توی ایران ارائه خدمات می‌ده، نیازی هم به استفاده از فیلترشکن نیست.</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Wed, 09 Oct 2024 11:29:20 +0330</pubDate>
            </item>
                    <item>
                <title>نردبان فنی چقدر بلنده؟</title>
                <link>https://virgool.io/@mahdiakhi/%D9%86%D8%B1%D8%AF%D8%A8%D8%A7%D9%86-%D9%81%D9%86%DB%8C-%DA%86%D9%82%D8%AF%D8%B1-%D8%A8%D9%84%D9%86%D8%AF%D9%87-hva1eqpwojq8</link>
                <description>نردبان فنی چقدر بلنده؟مهارت‌های فنی بین بچه‌های مهندسی مخصوصا بچه‌های علوم کامپیوتر که دائما دنیاشون داره تغییر می‌کنه، جزو مهارت‌های مهم و تعیین کننده هستن. این که چه زبان‌ها، تکنولوژی‌ها، پارادایم‌ها و مفاهیمی رو بلد باشن. معمولا بعدش نوبت به سطح تسلط و خفن بودن(Seniority) می‌رسه، این که شما چقدر روی اون مفاهمیمی که نام بردیم و دیگر مفاهیم مسلط هستید و جای درستی از اونها استفاده می‌کنید. معمولا توی تیم‌ها بخش‌های مهم و وظایف کلیدی تکنیکال به این آدم‌ها سپرده می‌شه و گاها به نوعی نقش رهبری یا منتوری هم بهشون داده می‌شه.من نمی‌خوام در مورد این که «سنیوریتی چیه» یا «چقدر بلد باشم بهم می‌گن سنیور» حرف بزنم. می‌خوام از نظر خودم بگم که این مهارت‌ها چقدر می‌تونن جایگاه شما رو توی تیم بالا ببرن. آیا من هر چقدر آدم مسلط‌تری باشم می‌تونم پوزیشن‌های بالاتری توی شرکت گیر بیارم؟ مثلا می‌تونم CTO یا Tech lead بشم؟ یا team lead. در واقع این نردبون فنی بالا رفتن ازش چقدر منو می‌تونه توی سازمان بالا ببره؟ از اون جا به بعد چی مهمه؟اوایل ورود شما به یک تیم و در میان مدت، مهارت‌های فنی شما واقعا تعیین کننده است. این که شما بتونید سریع و خوب مهارتی رو کسب کنید و توی اون پیش برید. در واقع نرخ یادگیری‌تون بالا باشه. مهارت فنی به شما کمک می‌کنه توی تیم اعتمادسازی کنید و البته اعتماد به نفستون هم بالا بره. هر چقدر بیشتر در مهارت‌های فنی ماهر بشید این امکان رو دارید که کارها رو زودتر و بهتر انجام بدید و کم کم راهتون رو به سمت بخش‌های مهم باز کنید. اما این راه تا کجا ادامه داره حقیقتش اینه تا زمانی که کاری فقط به شما بستگی داشته باشه مهارت‌های تکنیکال اهرم خوبیه که در اختیار شماست. اما کم کم وقتی این کارها جنبه‌ی جمعی پیدا می‌کنن از وزن مهارت تکنیکال کاسته و به وزن مهارت‌های نرم افزوده می‌شه. قطعا مهارت‌های تکنیکال اونجا هم اهمیت دارن اما کدوم شرکتی حاضره کسی رو که توانایی خوبی در ارتباط برقرار کردن با دیگران نداره به عنوان مدیر یک تیم انتخاب کنه؟ یا مثلا آدمی که نمی‌تونه توی مواقع حساس کنترل خودش رو حفظ کنه و اوضاع رو تحت کنترل داشته باشه؟ اگه این شخص به تنهایی روی یک بخشی کار کنه و از لحاظ مهارت‌های نرم خراب کنه، فقط یک نفره که خراب کرده اما وقتی این فرد مدیر یک تیم هر چند کوچیک باشه اشتباهات اون ابعاد گسترده‌تری می‌گیرن. این ابعاد نه فقط مالی بلکه ممکنه ابعاد انسانی و اعتباری هم برای شرکت داشته باشه. شخصا دو بار شاهد این بودم که بین افرادی با سطح توانایی نزدیک به هم ولی با اخلاق و رفتار متفاوت، مدیرها کسی رو برای مدیریت انتخاب کردن که مهارت‌های نرم قوی‌تری داشته.توی این دوره و زمونه که هوش مصنوعی پیشرفت عجیبی داره ، مخصوصا توی کامپیوتر، خیلی از مباحث فنی کم کم دارن به هوش مصنوعی سپرده می‌شن. قرار نیست یه هوش مصنوعی بیاد و همه چیز رو انجام بده اما قراره آدم‌هایی بیان که بلدن خیلی خوب از هوش مصنوعی استفاده کنن. اونوقت این آدم‌ها با توجه به سرعت و دقت بالایی که به دست میارن می‌تونن خیلی زود از لحاظ فنی جلو برن و اینجا دیگه کم کم مسئله‌ی مهارت فنی کمرنگ می‌شه و وزن مهارت نرم بیشتر و بیشتر می‌شه. البته که از مهارت‌های ذهنی و شناختی هم نباید غافل شد. مثلا مهارت حل مسئله، مهارت ساده کردن مسائل و ابسترکشن، مهارت دیزاین کردن، و... . این صرفا یادداشتی شخصی بود با توجه به سوالات و بحث‌هایی که این روزها سر کلاس‌ها و شرکت زیاد ازم در موردشون نظر می‌خوان و خوش حال می‌شم نظر شما رو هم بدونم.مهدی آخی</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Wed, 22 May 2024 01:56:20 +0330</pubDate>
            </item>
                    <item>
                <title>هر کس چایی‌اش را سر وقت می‌نوشد</title>
                <link>https://virgool.io/@mahdiakhi/%D9%87%D8%B1-%DA%A9%D8%B3-%DA%86%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B4-%D8%B1%D8%A7-%D8%B3%D8%B1-%D9%88%D9%82%D8%AA-%D9%85%DB%8C-%D9%86%D9%88%D8%B4%D8%AF-mogovdvxuorz</link>
                <description>عکس از مایکروسافت بینگدوستانی که از نزدیک با من در ارتباط هستند و آنها را از نزدیک می‌بینم شاید بدانند که من دوست ندارم چاییم را داغ داغ بنوشم. دوست دارم چاییم را در یک دمایی بین سردی و گرمی که بهم می‌چسبد بنوشم. فکر می‌کنم شما هم این طور هستید، یعنی چاییتان را در دمایی که بهتان می‌چسبد می‌خورید.مثلا محمدرضا دوست دارد چایی‌اش را داغ داغ بخورد(لب دوز و لب سوز) و همیشه می‌گوید این طوری می‌چسبد!برعکس، پدر گرامی اما معمولا چایی را سرد می‌نوشند.گاه گاهی بحث‌هایی هم می‌شود. مثلا می‌گویند: بابا چایی رو تا داغه باید بخوری، سرد بشه که چایی نیست. شربته!یا مثلا می‌گویند: تو چطور می‌تونی چایی رو اینقدر داغ بخوری! بذار یکم سرد شه بعد بخور. این طور اصلا نمی‌فهمی داری چی می‌خوری!از دلایل پزشکی و سلامت اگر چشم پوشی کنیم، به نظر شما کدام درست است؟ می‌توانید بگویید؟به کسی که چایی یا کلا خوراکی‌های سرد دوست دارد می‌توانید بگویید که داری اشتباه می‌کنی چاییت را داغ داغ بخور کیفش بیشتره؟نه، شاید به خاطر شما امتحان کند اما احتمال خیلی زیادی خوشش نمی‌آید.هر کسی باید چایی‌اش را در وقتی که بهش می‌چسبد بخورد.افرادی هم هستند که اصلا چایی دوست ندارند. ما نمی‌توانیم با یک لیوان کمر باریک با عکس مرحوم ناصرالدین شاه دنبالش بیفتیم و بگوییم باید بخوری. خب دوست ندارد!من همیشه دوست داشتم یاد بگیرم و دنبال بزرگ‌تر شدن بودم. دائما چیزهای مختلف را یاد می‌گرفتم و یاد می‌دادم،‌ اصلا این کانال را هم برای همین ساختم.عطش یادگیری از یک سو و ترس عقب ماندن و چیزی بلد نبودن از سوی دیگر، شب‌ها خواب را از چشمانم می‌ربود. اوضاع مالی خانواده هم خوب نبود و من از آن سمت هم تحت فشار زیادی بودم.این را بگویم هیچوقت به کسی حسودی نکردم، اما روزگاری بود که وقتی چند آدم کار بلد و بزرگ را می‌دیدم می‌ترسیدم که نکند عقب بمانم و به آنها نرسم.نکند هیچوقت نرسم! اگر نرسم چه؟و بسیاری از این سوالات و ترس‌ها که حتما شما هم کمابیش تجربه کرده‌اید.سه چهار سال پیش بود، وقتی که ۲۱ یا ۲۲ ساله بودم، همکاری داشتم از آن کار بلدهای نرم‌افزار. ناخواسته خیلی مواقع خودم را در مقام قیاس با او قرار می‌دادم و می‌گفتم یعنی وقتی من هم همسن اون بشوم این چیزها را بلدم؟آن زمان کتابی را در مورد معماری نرم‌افزارهای رویداد محور می‌خواندم(Event-Driven) یک روز که پیش این همکارم بودم کتاب را در دستم دید و گفت من سه سال است دوست دارم این کتاب را بخوانم و یاد بگیرم اما نمی‌توانم. هنوز هم این مباحث را بلد نیستم.جا خوردم!به فکر فرو رفتم که این کتابی که ایشان آرزوی خواندنش را دارد من ریز به ریز دو سه باری خوانده‌ام. خیلی با خودم فکر کردم، دیدم کسی از کسی جلوتر نیست. هر کسی چایش را در زمانی که مناسب است می‌نوشد. دقت که کردم دیدم همان زمان هم من ابزارهایی را در شرکت بلد هستم که او بلد نیست و برعکس. کدام ما جلوتر است؟کدام ما برنده است؟حکایت خیلی چیزها در زندگی، حکایت همین چایی است. پررنگ‌ترینشان شاید همین ازدواج و مهاجرت هستند که سرشان دیوانه شدیم!نترسید اصلا، چایتان را سر وقت بنوشید:)مَهدی آخی</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Fri, 19 Jan 2024 13:36:53 +0330</pubDate>
            </item>
                    <item>
                <title>نقطه حقیقت</title>
                <link>https://virgool.io/@mahdiakhi/%D9%86%D9%82%D8%B7%D9%87-%D8%AD%D9%82%DB%8C%D9%82%D8%AA-zwfsqefp92rz</link>
                <description>ما درمورد خوبی‌های «خودشناسی» و «معرفتِ به خود» چیزهای زیادی دیدیم، خوندیم و شنیدیم. کسی نمی‌تونه منکر این موضوع بشه که خودشناسی از ضروریات هر موفقیت و دست‌آوردیه. بدون خودشناسی انگار که شما سوار یک ماشین هستید که هیچ خبری از وضعیت اون ندارید. نه می‌دونید ترمزهای اون خوب کار می‌کنه، نه می‌دونید چقدر سوخت دارید و... آیا با همچین ماشینی می‌شه سفری ایمن و دل انگیز رو متصور بود؟ احتمال قریب به یقین جواب خیر هستش. این ماشین در واقع خودِ ما هستیم و اون سفر هم سفر زندگی ما و مسیرهاییه که قراره بریم. تا زمانی که ما شناخت درستی از نقاط ضعف و قوت خودمون نداشته باشیم، چطور می‌تونیم سفر ایمنی داشته باشیم؟ چطور می‌تونیم رسیدنی رو برای خودمون متصور بشیم؟ اصلا چطور می‌تونیم بفهمیم که آدم این سفر هستیم و لقمه بزرگتر از دهنمون بر نداشتیم؟ همه‌ی اینها با خودشناسی قابل فهمیدن هستن. اما حالا که ضرورت این مقوله برای ما مشخص شد، نوبت به سوال معروف و البته خیلی سخت می‌رسه «چطور خودمون رو بشناسیم؟»برگرفته از سایت موسسه‌ی یوهان کرایوفواقعیتش اینه که به تعداد آدمای روی زمین راه هست برای شناختن خودمون! این مسئله تاریخی به درازای قدمت انسان داره. همیشه آدم‌ها سعی کردن خودشون رو بشناسن. برای همین همیشه دور و بر ما پر از سوالات وجودی و چراهای بنیادی بوده. روزها فکر من این است و همه شب سخنمکه چرا غافل از احوال دل خویشتنماز کجا آمده‌ ام آمدنم بهر چه بودبه کجا می‌ روم آخر ننمایی وطنممانده‌ ام سخت عجب کز چه سبب ساخت مرایا چه بوده‌ است مراد وی از این ساختنممولاناآدمای زیادی از اول تاریخ بودن که سعی کردن به جواب این سوالات برسن و خودشون رو بشناسن. اما اکثرا موفق نبودن و هرکدوم تونستن قدمی کوچیک رو توی این راه بردارن و برای نسل‌های بعد به یادگار بگذارن.  اما جدیدا چندتا اتفاق برای من به صورت همزمان افتاد که باعث شدن من به یک شهودی برسم و از اون به یک خودشناسی کوچیک درمورد توانایی‌های خودم برسم که دوست داشتم اون رو با شما هم به اشتراک بگذارم.نقطه‌ی حقیقت؛ یک گلوگاه برای خودشناسیتازگی‌ها که کتاب «اثر مرکب -- دارِن هاردی» رو می‌خوندم توی فصل ششم این کتاب با یک عبارت تازه و هیجان انگیز آشنا شدم «نقطه حقیقت». آقای هاردی در تعریف این عبارت می‌گه:  وقتی خیلی تحت فشار قرار می‌گیری نقطه‌ای وجود داره که با خودِ واقعی‌ات رو به رو می‌شی. نقطه‌ای که ضعف‌ها و بخش‌های توخالی رو خودت رو بهت نشون می‌ده. این نقطه، نقطه‌ی حقیقته. جایی که راه فراری نیست و در عمل و در نهایتِ واقعیت با اون رو به رو شدی و اصلا جایی برای کتمان و لاپوشونی وجود نداره.اینجاست که آدم می‌فهمه کجاها توهم توانایی و دانایی داشته و چه چیزهایی فقط یک تصور در درون خودش بوده.آقای هاردی از مثال دوچرخه‌سوار استفاده می‌کنه. اون می‌گه که: تصور کنید سوار یک دوچرخه و در یک شیب تند در حال رکاب زدن به سمت بالا هستید و ماهیچه‌های بدنتون بشدت خسته هستن و از فرط خستگی می‌سوزن. یک جایی وجود داره که شما با خودتون فکر می‌کنید واقعا آدمِ این کار نبودید. کلی بهانه و عذر و توجیه توی ذهنتون میاد که بی‌خیال بشید و برگردید پایین. چون دیگه به آستانه‌ی توانایی رسیدید و دیگه بیش از این رو هیچوقت نرفتید. این نقطه‌ایه که شما می‌تونید خودتون رو بشناسید و البته دقیقا همین نقطه است که می‌تونید خودتون رو ارتقا بدید. شما در این نقطه متوجه می‌شید که تا چه حد تصوراتی که از خودتون داشتید درسته؟ چقدر توان دارید برای ادامه راه؟\ توی زندگی همه‌ی ما از این نقطه‌ها وجود داره. نقطه‌هایی که به نهایت ملال می‌رسیم و باید انتخاب کنیم بین جا زدن و برگشتن به پایداری قبل یا رد کردن این آستانه و وارد شدن به یک مرز جدید. اینجاهاست که آدم با رقیب واقعی خودش، یعنی خودش(!) کاملا رو به رو می‌شه و می‌فهمه که این خودشه که سقف رقابت‌های زندگیه، قبل از هر عامل بیرونی‌ای. وقتی به این نقطه رسیدیم می‌تونیم از یک نقطه بیرون از ماجراها و البته بیرون از خودمون به نظاره‌ بشینیم. ببینیم به عنوان یک شخص که از بیرون داره به این آدم نگاه می‌کنه، چه نقص‌هایی رو می‌بینه؟ آیا توانایی‌ها اشتباه شناخته شدن؟ آیا با توهمات به اینجا رسیده؟ آیا اصلا راه درستی رو انتخاب کرده و اومده؟ البته بگم که این حرف‌ها از اینجا قشنگ و ساده به نظر می‌رسن و در واقعیت هنر بسیار بزرگیه که کسی به چنین قابلیتی رسیده باشه که در نهایت ناتوانی بشینه و خودش رو توی یک نقطه‌ی ملال‌آور بررسی کنه. ولی خب آدم مگه چیزی جز تلاش برای شدنِ ناشدنی‌هاست؟علاوه بر مزیت خودشناسی که این نقطه داره. این نقطه می‌تونه نقطه تولد یک زندگی جدید هم باشه. اگر تصمیم بگیرید که در این نقطه به جای جا زدن و برگشتن فقط کمی بیشتر تلاش کنید و از اون آستانه عبور کنید، شما دیگه اون آدم سابق نیستید. شما یک مرز و محدودیت رو در زندگی‌تون جا به جا کردید و این یعنی از اون به بعد می‌تونید با قدرت توی محدوده جدیدی که ایجاد کردید حرکت کنید و دوباره به فکر بازتر کردن این محدوده بی‌افتید. شما می‌تونید تصمیم بگیرید که گذر کنید و آدم بزرگتری بشید یا این که برگردید به زندگی قبلی. البته این گذر کردن واقعا دردناک و سخته، هیچکس نمی‌تونه منکر این قضیه بشه چرا که اگر آسون بود اصلا گذر کردن ازش ارزشی هم نداشت!دو داستان از زندگی واقعی خودمزمانی که در مقطع کارشناسی مشغول به تحصیل بودم خیلی دوست داشتم چیزهای جدید یاد بگیرم و البته خب دوست داشتم که نمرات بالایی هم کسب کنم. همیشه برای به دست آوردن معدل بیست در جنگ بودم. در نیمه اول تحصیل مقطع کارشناسی، چهار ترم اول، خیلی به این هدف نزدیک شدم تا مرز 20 شدن پیش می‌رفتم اما نمی‌شد. شروع کردم به بررسی کردن کلی معیار مثل ساعت مطالعه، نحوه مطالعه و...  و فهمیدم که همه چیز نرماله. به این نتیجه رسیدم که من هیچ وقت حاضر نشدم بیش از چیزی که عادت کردم، توی درس به خودم سختی بدم. من هیمشه عادت کرده بودم که روزی سه ساعت رو به درس خوندن اختصاص بدم و هیچوقت بیشتر از این هم برای دانشگاه وقت نگذاشتم(تصمیمی که اصلا ازش پشیمون نیستم). البته این به این معنا نیست که از درس خوشم نمیومد یا اهلش نبودم(اگه نبودم این همه بهش اهمیت نمی‌دادم که تازه بخوام معدلم هم 20 بشه) فقط معتقد بودم که در سطح آکادمیک بیشتر از این وقت گذاشتن براش ارزش نداره و باید برم چیزای وسیع‌تر و البته کاربردی‌تر رو بخونم(مثلا من جبر خطی رو از دانشگاه MIT می‌خوندم با این که دانشگاه خودم ایلام بود! یا مثلا پردازش زبان طبیعی یا یادگیری ماشین و....) . ترم پنجم یک ترم سنگین با کلی درس تخصصی و استاد گردن کلفت بود. تصمیم گرفتم از مرزی که همیشه رعایتش می‌کردم و ازش بیرون رفتن برام معنایی نداشت عبور کنم و البته واقعا هم سخت بود! سرویس شدم حقیقتش :))) اما براش وقت گذاشتم و شد. شب‌هایی بود که می‌گفتم بابا بی‌خیال برو همون درس خودت رو بخون حالا گیریم 20 یا 19 یا 18 بشی چه فرقی دارن با هم! بعد توی ذهنم می‌گفتم که این برای من یک ارزش شده و هزینه‌ای که دارم بابتش پرداخت می‌کنم هزینه نامعقول و بی‌جایی نیست که بگم اگر شکست بخورم از بین می‌ره. هر جور بود پاش موندم و آخر ترم 5 برای اولین بار معدل من 20 شد. ترم ششم با نصف زور ترم قبلی دوباره 20 شد و ترم هفتم(ترم آخر) با این که اصلا تو فکرش هم نبودم و اصلا دیگه برام مهم نبود باز هم 20 شد. خب که چی؟ هیچی من بدون آزمون و از طریق استعداد درخشان رفتم دانشگاه شریف برای ادامه تحصیل در مقطع ارشد :)) شاید باورتون نشه اما الان هم که شریف هستم باز هم معدلم 20 شد!برگرفته از این سایتداستان بعدی هم مربوط به اتفاقیه که در یک ماه اخیر برام افتاد. من تونستم به یک شرکت نرم‌افزاری خوب که کلی آدم خوب و کار درست توی اون مشغول به کار هستن راه پیدا کنم. حقیقتش سطح کاری که اینجا انجام می‌دادن از لحاظ مهندسی در کیفیت خیلی خوبی قرار داره. برای من که تجربه‌ی در این سطح کار کردن رو نداشتم اون هم در شرایطی که اصلا با فناوری‌های شرکت آشنایی هم نداشتم کار کردن تبدیل شده بود به جهنم. با توجه به این که من به صورت ریموت برای این شرکت کار می‌کنم و همکارای من در دسترس نیستن، عملا امید چندانی به تعامل با دوستای همکار و پرسیدن از اونها نبود، حتی با این که دلسوزانه هم توضیح می‌دادن اما باز هم هیچی جای حضوری بودن رو نمی‌گیره. من مجبور بودم روزی حتی 18 ساعت رو پای یادگرفتن زبان برنامه‌نویسی و تکنولوژی‌ها و بیزینس شرکت بگذارم. هیچ  روزی این تعداد ساعت به کمتر از 16 نرسید. دیوانه‌وار مشغول خوندن اسناد بیزینسی شرکت بودم، بدون یک ساعت توقف. زبان شرکت رو تمرین می‌کردم، تکنولوژی‌های نرم‌افزاری شرکت که تجربه کار کردن صنعتی باهاشون رو نداشتم رو یاد می‌گرفتم و تست می‌کردم. به جایی رسیدم که نقطه حقیقت بود. خیلی خیلی خیلی خسته و غرق در ملال. به خودم می‌گفتم مهدی بی‌خیال اینجا برای تو  بزرگه برو یه جای کوچیکتر باز هم تلاش کن و بعدا که پخته شدی شانست رو برای اینجا امتحان کن. توی سه اسپرینت(شش هفته) من هیچی تحویل نداده بودم! واقعا هیچی! حتی یک API ساده برای دریافت لیست مشتری‌ها! حتی نوشتن یک داک ساده برای شفاف کردن معماری یک بخش از سرویس! هییییچ. اما می‌دونستم که کلی دوست و همکار و هم صنفی دارم که واقعا دوست دارن اینجا جای من باشن و منی که خیلی زحمت کشیدم و به این نقطه رسیدم که تونستم توی این مجموعه کار کنم نباید همین طوری جا بزنم. باز هم ادامه دادم بدون توقف تا این که سه روز بعد از اون شب تونستم شروع کنم به انجام دادن کارهایی که به من سپرده شده بود. باور نمی‌کنید که تمام کارهای عقب افتاده رو توی 4 روز با روزی 3 ساعت خوابیدن  انجام دادم رفت :) البته هنوز هم خیلی آماتور هستم، اما دیگه ترسی ندارم و به جا زدن فکر نمی‌کنم. هرکاری که نمی‌تونم انجامش بدم رو با صرف وقت خیلی کمتری نسبت به قبل یاد می‌گیرم و انجام می‌دم و از همه مهتر بابت تلاشی که برای یادگرفتن و رسوندن خودم به بچه‌های شرکت کردم اعتبارم به میزان قابل توجهی بین بچه‌ها بالاتر رفته و این برای من محسوس بود کاملا.ببخشید که طولانی شد. دوست داشتم این مفهوم رو با تجربه‌هایی از زندگی شخصی خودم با شما دوستای عزیزم به اشتراک بگذارم تا شاید به درد کسی بخوره. امیدوارم هر روز در حال جا به جایی مرزهای جدیدی از محدودیت‌ها توی زندگی شخصی و جامعه خودتون باشید.باز هم مثل همیشه پذیرای نظرات خوب شما هستم و با جون دل از شما استقبال می‌کنم.</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Sat, 30 Jul 2022 18:04:35 +0430</pubDate>
            </item>
                    <item>
                <title>توابع فعال ساز در شبکه‌های عصبی</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D9%81%D8%B9%D8%A7%D9%84-%D8%B3%D8%A7%D8%B2-%D8%AF%D8%B1-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%D8%B9%D8%B5%D8%A8%DB%8C-pnynslxzluh4</link>
                <description>اگه تا الان سری به شبکه‌های عصبی زده باشید و باهاشون کار کرده باشید حتما اسم توابع فعال ساز(Activation Functions) یا توابع انتقال(Transform Functions) به گوشتون خورده. این توابع به کمک شبکه‌های عصبی میان تا بتونن انعطاف پذیری و کارایی بیشتری به اونها بدن. توی این مطلب می‌خوام کاربردی‌ترین و پراستفاده‌ترین تابع‌های فعال ساز رو با جزئیات و کاربردشون رو براتون توضیح بدم. از اونجایی که من همه رو بلد نیستم و تعداد این توابع هم احتمالا در حال زیاد شدن هستش، این مطلب دائما به روز می‌شه و توابع بیشتری بهش اضافه خواهد شد. خوشحال می‌شم اگر تابعی رو می‌شناسید که من اینجا ذکر نکردم توی کامنت‌ها بهم بگید تا اون رو هم اضافه کنم. خب بریم سراغ اصل مطلب.توابع فعال سازفرض من برای نوشتن این مطلب اینه که شما با کلیّت شبکه عصبی یا حداقل یک نورون(یا پرسپترون) آشنا هستید و الان دنبال شناخت تابع فعال ساز هستید. اما برای این که جلوی چشممون باشه یه توضیح خیلی ریز درمورد نورون می‌دم. نورون کوچکترین واحد محاسباتی سازنده شبکه‌های عصبی هستش. هر نورون تعدادی کانال ورودی داره که ورودی رو از داده‌ها یا نورون‌های دیگه دریافت می‌کنن. هر کانال برای خودش یک وزن داره و تمام مصیبت شبکه‌های عصبی پیدا کردن مقدار مناسب برای این وزن‌هاست. شماتیک کلی یک نورون(پرسپترون)بعد از اینکه داده‌ها از این کانال‌ها وارد نورون شدن، هر ورودی در وزن کانال ضرب می‌شه و حاصل تمام این ضرب‌ها با هم جمع می‌شن و توی یک متغییری(مثلا z) قرار داده می‌شن.شماتیک محاسباتی نورون با تابع فعال سازمعادله خروجی نهایی نورون برای اینکه خروجی نورون مشخص بشه باید این z اعتبار سنجی بشه که آیا این مقدار تولید شده به درد شبکه می‌خوره یا نه.توی یک نورون، تابع فعال ساز تصمیم می‌گیره که با توجه به ورودی‌ها آیا اون نورون باید خروجیش فعال شه یا نه؟ در واقع با مفاهیم ساده ریاضی تصمیم می‌گیره که آیا ورودی‌های نورون در فرایند یادگیری و پیش بینی برای شبکه مهم هستن یا نه(اینکه همین عملیات ساده چجور منتهی به یادگیری و کارای خفن می‌شه رو حتی خود دانشمندا هم درست نمی‌دونن!). توابع فعال ساز زیادی وجود دارن که احتمالا به گوشتون خوردن، یکی از مواردی که توی معماری شبکه‌های عصبی تعیین کننده است انتخاب تابع فعال ساز درست هستش. ما می‌خوایم در ادامه ببینیم هر کدوم از این توابع چه مشخصه‌هایی دارن و بهتره کجاها استفاده بشن. اینو یادتون باشه که اکثرا بهترین تابع فعال ساز، ساده‌ترین اونها هستند و نیاز نیست الکی خودتونو زجرکش کنید بیخ همه رو دربیارید و فکر کنید هرچی بیشتر یاد بگیرید و پیچیده‌تر فکر کنید خیلی خفنید! سادگی پادشاه‌ استانواع توابع فعال سازما سه دسته تابع فعال ساز داریم، که یک دسته‌ش تقریبا تعطیله، یک دستش بود و نبودش فرقی نداره و یک دستش که کارِ ما رو راه می‌اندازه. این دسته بندی براساس خطی بودن توابع انجام شده:تابع پله دودویی(تعطیل)تابع خطی(باشه نباشه مهم نیست)تابع غیرخطی(کار راه بنداز)دسته اول: تابع پله‌ی دودویی(Binary Step Function)این دسته فقط یک تابع داره که هم اسم خود دسته هم هستش. همون طور که از اسمش پیداست، این تابع شبیه به یک پله است. کار این تابع این هستش که بسته به یک مقدار آستانه تصمیم می‌گیره که خروجی تولید شده(z) فعال بشه یا نه(احتمالا با این تابع توی کتاب سیگنال‌ها و سیستم‌ها یا کتاب‌های ریاضیات مهندسی آشنا هستید). این مقدار آستانه(threshold) رو شما تعیین می‌کنید اما تابع اصلی براساس عدد 0 تصمیم میگیره. اگر z برابری یا کوچتر از صفر بود نورون غیرفعال(خروجی صفر) می‌شه در غیر این صورت z به خروجی ارسال می‌شه. شکلش رو هم براتون گذاشتم.تابع پله دودویی فرمول ریاضی(بدنه تابع) هم به شکل زیر هستش:تابع پله دودوییاما این تابع یه سری محدودیت داره که باعث می‌شه ما سراغ انواع دیگه بریم:توانایی تولید چند مقدار رو نداره، یعنی همیشه یا صفرِ یا یک. مثلا نمی‌شه ازش برای کلاسبندی چندتایی استفاده کردمشتق( شیب، به انگلیسی: Gradient) این تابع صفر هستش، که یک مانع برای عملیات پس انتشار(backpropagation) حساب می‌شه. پس اگر جایی عملیات پس انتشار داشتید نمی‎‌تونید از این تابع استفاده کنید.یک نکته بگم: با توجه به اینکه توی عملیات پس انتشار معمولا از مفهوم شیب(گرادیان) استفاده می‌شه، نباید تابع فعال سازی انتخاب کنید که مشتقش عدد ثابت بشه یا خیلی محدود باشه چون باعث &quot;ناپدید شدن گرادیان&quot; که یکی از مشکلات توی شبکه‌های عصبی هستش می‌شه. دسته دوم: توابع فعال ساز خطی(Linear Activation Function)این دسته از توابع خیلی آشنا هستن(از راهنمایی تقریبا همیشه باهاشون سر و کله زدیم). کلا هر تابعی که روی محور مختصات به شکل یک خط راست باشه ک تابع خطی یا تابع تطابق(Identity) به حساب میاد. شکل زیر معروف‌ترین تابع خطی(y=x) هستش.ضابطه‌ی تمام توابع خطی هم به فرم زیر هستش(a و b اعداد ثابت هستن):تابع خطیتابع خطی فعال ساز هم دقیقا همین ضابطه رو داره. این توابع خیلی ساده هستن که همین سادگی هم براشون سه مشکل عمده به وجود آورده که باعث شده استفاده چندانی نداشته باشن:چون مشتق این تابع یک عدد ثابت می‌شه نمی‌شه از اون برای مواقعی که پس انتشار داریم استفاده کنیم.چون خط راست هستش نمی‌شه ازش برای دسته‌بندی داده‌های پیچیده استفاده کرد. اکثر داده‌های امروزی اَشکال چند بعدی و پیچیده دارن که با خط راست قابل جداسازی نیستن.توی شبکه‌های عصبی چند لایه، استفاده از این تابع فعال ساز باعث می‌شه تمام لایه‌ها روی یک لایه بریزن(collapse). مهم نیست که شما چند لایه دارید، لایه آخر یک تابع خطی از لایه اول هستش.دسته سوم: توابع فعال ساز غیر خطیاین دسته در حال حاضر پراستفاده‌ترین و بهترین دسته برای شبکه‌های عصبی هستن. دلیلش هم اینه که اولا شکل خطی ندارن، پس می‌شه برای داده‌های غیر خطی و پیچیده ازشون استفاده کرد؛ دوما مشتقشون هم عدد ثابت نمی‌شه، پس به درد استفاده توی عملیات پس انتشار می‌خورن. توابع غیر خطی زیادی داریم که در ادامه به اونها می‌پردازیم.1.تابع فعال ساز سیگموید یا لجستیک(Sigmoid / Logistic Activation Function)این تابع هر عدد حقیقی‌ای رو به عنوان ورودی دریافت می‌کنه و خروجی اون عددی بین 0 تا 1 هست. هرچی عدد بزرگتر(مثبت‌تر) باشه خروجی بیشتر به ورودی نزدیک هستش و هرچی عدد کوچیک‌تر باشه خروجی بیشتر به صفر نزدیک می‌شه. شکل اون توی محور مختصات رو توی تصویر زیر می‌تونید ببینید.تابع فعال ساز سیگمویدضابطه‌ی تابع هم به شکل زیر هستش:تابع سیگمویداین تابع با اینکه شکل ساده‌ای داره، اما یکی از پرکاربردترین توابع فعال ساز توی شبکه‌های عصبی هستش. چرا؟مزایاتوی اکثر مسائلی که توی شبکه‌های عصبی و یادگیری عمیق بررسی می‌‍شن، ما سعی داریم که احتمال خروجی رو بررسی کنیم. از اونجایی که این تابع خروجیش(بُرد تابع) همیشه بین 0 تا 1 هست مورد بسیار مناسبی برای این کاره.تابع مشتق پذیر هستش و مشتق اون یک تابع نرم(smooth) هستش که باعث می‌شه موقع پس انتشار جهشی بین خروجی مقادیر نداشته باشیم(شکل مشتق تابع سیگموید رو می‌تونید این زیر ببینید)نمودار مشتق تابع سیگمویدمعایبمشتق تابع سیگموید می‌شه f&#x27;(x) = sigmoid(x)*(1-sigmoid(x)) که توی شکل بالا هم نشون داده شده. همون طور که مشخصه مشتق تابع بین -3 تا 3 مقدار قابل توجهی داره و توی نواحی دیگه این مقدار خیلی کم می‌شه. این یعنی برای مقادیری خارج از بازه ی -3 تا 3 مقدار مشتق تابع خیلی کم و نزدیک به صفر هستش که این می‌تونه منجر به مشکل ناپدید شدن گرادیان بشه که یادگیری شبکه رو به صفر می‌رسونه.مشکل بعدی هم اینه که خروجی تابع در نزدیکی صفر متقارن نیست. بنابراین خروجی نورون‌ها هم علامت می‌شه که این قضیه آموزش شبکه رو مشکل و ناپایدار می‌کنه.2. تابع فعال ساز سافت مکس(softmax)این تابع تقریبا عملکردی مثل تابع سیگموید داره اما با مقداری تفاوت که اون رو تبدیل به تابعی کارآمدتر و پر استفاده‌تر می‌کنه. گفتیم که تابع سیگموید چون خروجی‌ای بین 0 تا 1 داره برای مواردی که بخوایم احتمال یک دسته رو به دست بیاریم مورد مناسبیه، اما یک مشکلی برای این کار وجود داره. فرض کنیم که ما توی لایه آخر شبکه عصبی 5 خروجی داریم که به این صورت هستن 0.8، 0.9، 0.7، 0.8، و 0.6 آیا می‌تونید بگید این خروجی چه چیزی رو بهتون نشون می‌ده؟ نه! چون مشخص نیست که ما باید کدوم خروجی رو به عنوان جواب مسئله مون بپذیریم. ما می‌دونیم که مجموعه احتمالات فضای خروجی یک مسئله باید برابر با 1 بشه. اما توی مثال بالا اینطور نیست! تابع softmax رو می‌شه به شکل ترکیبی از چندین تابع سیگموید در نظر گرفت که در نهایت احتمال مرتبط با هر خروجی رو محاسبه می‌کنه و خروجی این تابع قابل فهم‌تره نسبت به تابع سیگموید.  این تابع اکثرا در لایه آخر شبکه استفاده می‌شه و وظیفش هم این هستش که احتمال هر خروجی رو بهتون می‌ده طوری که مجموع احتمالات برابر با 1 باشه و شما بتونید از اون استفاده کنید. ضابطه تابع به شکل زیر هستش:تابع Softmax3. تابع فعال ساز Tanhاین تابع هم از لحاظ شکل مختصاتی بسیار شبیه به تابع سیگموید هستش با این تفاوت که خروجی تابع(بُرد تابع) توی بازه‌ی -1 تا 1 هستش. در تانژانت هایپربولیک یا تانژانت هذلولوی(Hyperbolic Tangent) هرچی ورودی بزرگتر(مثبت‌تر) باشه، خروجی خروجی بیشتر به 1 نزدیک می‎شه و برعکس هرچی خروجی کوچیکتر(منفی‌تر) باشه خروجی به -1 نزدیک می‌شه. توی شکل زیر گراف این تابع رو می‌تونید ببینید:تابع tanhضابطه‌ی تابع هم به شکل زیر درمیاد:تابع tanhمزایاخروجی تابع فعال ساز tanh نسبت به صفر مرکزیت داره، یعنی صفر در مرکز خروجی این تابع قرار داره. این ویژگی یک خاصیت به این تابع می‌ده که به کمک اون می‌تونیم مقادیر خروجی رو به خیلی منفی، صفر و خیلی مثبت تقسیم کنیم.بیشتر برای لایه‎‌های میانی و مخفی شبکه استفاده می‌شه. از اونجایی که خروجی اون بین -1 تا 1 هستش و معمولا میانه(mean) خروجی لایه مخفی نزدیک به 0 در میاد، کمک می‌کنه تا داده‌ها رو متمرکز و یادگیری رو برای لایه بعدی آسون‌تر کنهمعایبتوی توابعی که تا الان بررسی کردیم به مشتق اونها هم توجه ویژه‌ای داشتیم، بگذارید برای tanh هم این کار رو انجام بدیم. شکل زیر نمودار مشتق این تابع رو توی دستگاه مختصات نشون می‌ده:مشتق تابع tanhهمونطور که می‌بینید اینجا هم، مثل تابع سیگموید، مشکل ناپدید شدن گرادیان رو داریم. به علاوه شیب اون هم نسبت به شیب مشتق تابع سیگموید تندتره.اگر چه هر دو تابعِ سیگموید و tanh مشکل ناپدید شدن گرادیان رو دارن، اما چون tanh نسبت به صفر متقارن هستش و این باعث می‌شه که گرادیان اون به طور مشخص به سمت خاصی حرکت نکنه، به همین خاطر اکثرا در عمل از tanh استفاده می‎‌کنن.4. تابع فعال ساز ReLUاین تابع فعال ساز خیلی مهمه و براساس اون هم توابع فعال ساز زیادی به وجود اومدن. به همین خاطر پیشنهاد می‌کنم حواستون رو توی این یک مورد بیشتر جمع کنید. ReLU از سرواژه‌ی Rectified Linear Unit (واحد خطی تصحیح شده) تشکیل شده. اگر به شکل گرافش که توی تصویر زیر اومده دقت کنید حسِ یک تابع خطی رو به شما می‌ده. مشکل توابع خطی این بود که مشتقشون اعداد ثابت بودن به همین خاطر ما نمی‌تونستیم از اونها استفاده کنیم. اما تابع ReLU مشتق پذیره و می‌تونیم از اون برای پس انتشار استفاده کنیم و هزینه محاسباتی کمی هم برای ما داره، برای همین از خوبای توابع فعال ساز به حساب میاد. نکته اصلی توی تابع ReLU این هستش که این تابع فعال ساز تمام نورون‌ها رو فعال نمی‌کنه و فقط نورون‌هایی رو فعال می‌کنه که خروجی اونها بزرگتر از یک هستش(توی شکل زیر می‌تونید ببینید)تابع فعال ساز ReLUرابطه ریاضی اون به شکل زیر هستش:تابع فعال ساز ReLUمزایاچون فقط تعدادی از نورون‌ها فعال می‌شن، هزینه محاسباتی این تابع نسبت به توابع قبلی کمتر هستش. به همین خاطر توی خیلی از موارد مثل پردازش متن، پردازش تصویر و پردازش صوت از این تابع استفاده می‌شه.این تابع به خاطر ویژگی خطی که داره باعث تسریع عملیات کاهش گرادیان(gradient descent) برای پیدا کردن مقدار کمینه سراسری(global minimum) می‌شه.معایبایراد اصلی این تابع مشکلی هست به نام &quot;مرگ ReLU&quot;. منظور از مرگ ReLU اینه که برخی از نورون‌های ReLU می‌میرن و غیرفعال می‌شن و برای تمامی ورودی‌ها،  خروجی 0 می‌شه. در این حالت، هیچ گرادیانی جریان پیدا نمی‌کنه و در صورتی‌که تعداد نورون‌های غیرفعال در شبکه عصبی زیاد بشه، عملکرد مدل تحت تأثیر قرار می‌گیره.مشتق تابع ReLU5. تابع فعال ساز Leaky ReLUبرای رفع ایراد مرگ ReLU تابعی به اسم  Leaky ReLU وجود داره که از مرگ نورون‌های با مقادیر منفی جلوگیری می‌کنه. شکل زیر رو ببینید.تابع فعال ساز  Leaky ReLUضابطه تابع هم به شکل زیر هستش:تابع فعال ساز  Leaky ReLUاین تابع تمام مزایای ReLU رو داره و مشکل مرگ نورون‌ها رو هم حل کرده. با این تغییر توی تابع ReLU دیگه برای مقادیر منفی گرادیان صفر نمی‌شه و می‌تونیم از اون برای مواردی که خروجی نورون منفی هست هم استفاده کنیم. شکل زیر مشتق تابع Leaky ReLU رو نشون میده.مشتق تابع فعال ساز Leaky ReLUمعایبممکنه پیش بینی‌ها با ورودی‌های منفی سازگار نباشن.گرادیان برای اعداد منفی مقدار کوچکی هستش که این می‌تونه هزینه یادگیری رو برای ما افزایش بده.6. تابع فعال ساز Parametric ReLUاین تابع هم یکی از انواع تابع ReLU هستش که برای حل مشکل مرگ نورون‌ها برای مقادیر منفی به وجود اومده(کلا این ReLU اینقدر خوبه که همه می‌خوان یه جوری کمکش کنن). این تابع برای قسمت منفی‌ها یک ضریب(شیب) در نظر گرفته به نام a. توی عملیات پس انتشار سعی می‌شه بهترین مقدار a یادگرفته بشه.نمودار تابع Parametric ReLUضابطه تابع هم به شکل زیر هستش:ضابطه تابع Parametric ReLUتوی تابع بالا a همون ضریب یا شیب برای مقادیر منفی هستش.اگر توی حل مسئله با استفاده از leaky ReLU موفق نبودیم، می‌تونیم از این تابع استفاده کنیم. عیب این تابع هم این هستش که به خاطر پارامتر a ممکنه برای مسائل مختلف، به شکل متفاوتی عمل کنه.7. تابع فعال ساز Exponential Linear Units (ELUs)این تابع هم برای حل مشکل مرگ نورون توی تابع ReLU به وجود اومده. این تابع هم مثل تابع قبلی تلاش می‌کنه تا یک شیب رو به قسمت منفی نسبت بده و با این کار از حذف نورون‌های منفی جلوگیری کنه. این تابع از  یک خم لگاریتمی برای مشخص کردن قسمت منفی استفاده می‌کنه، برخلاف دو تابع قبلی که این کار رو با یک خط راست انجام داده بودن.تابع فعال ساز ELUضابطه تابع:ضابطه تابع فعال ساز ELU به دلایل زیر ELU یک جایگزین خیلی خوب برای ReLU هستش:این تابع به صورت خیلی آرام نرم می‌شه(خمی که توی نمودار هست) درصورتی که توی ReLU یک جهش یا یک زاویه داشتیم. با یک خم نرم و لگاریتمی از مرگ نورون‌ها هم جلوگیری می‌کنه. این به وزن‌ها و بایاس‌ها کمک می‌کنه تا در مسیر درست و با شیب درست حرکت کنن.نمودار مشتق تابع ELUضابطه مشتق تابع ELUمعایببه خاطر این که محاسبات نمایی توی خودش داره، هزینه محاسباتی بالایی دارهمشکل انفجار گرادیان رو داریم!8. تابع فعال ساز Swishاین تابع توسط محققین شرکت گوگل توسعه داده شده. این تابع عملکردی مشابه با ReLU رو توی شبکه‌های عمیق داره. swish کران پایین داره ولی از بالا نامحدوده. یعنی با نزدیک شدن X(مقادیر ورودی) به منفی بی‌نهایت، Yها یا خروجی‌های ما به یک مقدار نزدیک می‌شن. اما با نزدیک شدن X به مثبت بی‌نهایت، Y ها هم به مثبت بی‌نهایت نزدیک می‌شن. این قضیه توی گراف تابع قابل مشاهده است.نمودار تابع Swishضابطه تابع هم به شکل زیر هستش:ضابطه‌ی تابع Swish اندر مزایای این تابع باید براتون بگم که:مثل تابع ELU این تابع هم تغیرات نرمی رو حول صفر داره و برخلاف ReLU رفتار تندی توی اون ناحیه نداره.مقادیر منفی کوچک در ReLU صفر می‌شدند. در حالی که ممکن بود این مقادیر در استخراج و ثبت الگوها موثر باشند. از طرفی در Swish مقادیر منفی بزرگ به دلیل پخش شدگی صفر می‌شوند و این تابع یک عملکرد برد برد در قبال اعداد منفی دارد.خب اینم از این، همونطور که اول مطلب هم گفتم تعداد توابع فعال ساز زیاده و به مرور این مطلب تکمیل‌تر می‌شه. خیلی خوشحال می‌شم توی نظرات توابع دیگه رو هم معرفی کنید که به سراغ بررسی اونها هم برم یا اینکه اگر ویژگی‌ای جا مونده و ما بررسی نکردیم بگید که برای توابع بررسی کنیم. از تجربیات خودتون درمورد استفاده از انواع مختلف توابع فعال ساز توی کاربردها و معماری‌ها متفاوت بگید تا این تجربیات به دوستان دیگه هم منتقل بشه.مطالب مرتبط با این نوشته در وبلاگ من:آموزش نوشتن خودرمزنگار(Auto Encoder) برای بازسازی تصاویر به همراه سورس کدمنابع:لینک</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Sat, 09 Oct 2021 12:56:25 +0330</pubDate>
            </item>
                    <item>
                <title>چسبوندن کت به دکمه</title>
                <link>https://virgool.io/@mahdiakhi/%DA%86%D8%B3%D8%A8%D9%88%D9%86%D8%AF%D9%86-%DA%A9%D8%AA-%D8%A8%D9%87-%D8%AF%DA%A9%D9%85%D9%87-dzdmyt9bwvth</link>
                <description>سلام می‌خوام براتون از یه مشکل بین ما ایرانی‌ها  صحبت کنم تا شاید دیگه این اشتباه رو مرتکب نشیم. ممکنه این لطیفه رو شنیده باشید:یه بنده خدایی یه دکمه رو می‌بره خیاطی و می‌گه بی زحمت برام یه کت بندازید رو این. (هار هار هار هار!)به نظر خیلی با عقل جور در نمیاد این کار، اما ما داریم توی زندگیمون این کار رو انجام می‌دیم! مثال بزنم براتون: بین برنامه نویس ها خیلی شایع هست که یهو شور استارتاپ می‌گیرن و پا می‌شن می‌رن گروهی یا تکی یه ایده رو پیدا یا طراحی می‌کنن و می زنن تو کار توسعه و پیاده سازیش. خیلی‌ها هم پیاده سازیشون درسته و  محصولشون آماده می‌شه اما چرا استارتاپ شکست می‌خوره؟ یا چرا بعد از توسعه محصول، توی بازار گم می‌شن؟ در کنار کلی دلیل اصلی و بزرگ‌تر مثل بازار یابی، نیاز سنجی، شناخت بازار هدف و... یه دلیلی که وجود داره تک بعدی فکر کردن اونهاست. اونا فکر می کنن چون یه توانایی یا علم رو دارن حتما باید هرجا ازش استفاده شده باشه موفق باشن! داداش یه حساب کتاب کن ببین اوضاع چطوره؟! مگه می شه یه دکمه رو ببری خیاطی بگی روش کت بچسبون! یا یک پیچ چرخ رو ببری تعمیرگاه بگی برات یه ماشین بهش ببندن؟ منطقا نه!خیلی از کارهای ما همیطور هستن، نه فقط در سطح فردی بلکه در سطح خانواده و اجتماع و دولت و حکومت. یه چیزی رو که بلدیم، اونقدر غرقش می‌شیم که کلا توی محیط ایزوله در نظرش می‌گیریم و فکر نمی‌کنیم که این توانایی توی هر محیط و شرایطی قرار بگیره کلی عوامل و فاکتور برای تاثیرگذاری روی اون وجود داره طوری که اون توانایی ما تبدیل به یک تیکه کوچیک از اون محیط می‌شه. مثل ریاضیات توی حسابداری؛ درسته که حسابدارها با اعداد و ضرب و تقسیم سر و کار دارن اما اگه یه ریاضیدان رو بگذاریم جای یک حسابدار باید موفق بشه؟ حسابداری اونقدر قوانین کار و مالیاتی و بانکی داره که ریاضیاتش اصلا به چشم نمیاد و همه‌ش رو با یه نرم افزار می‌‌شه رد کرد رفت.ما به این فکر نمی‌کنیم که باید مشکل رو پیدا کنیم و بعدش بریم سراغ راه حل، در واقع ما چون یک دریل توی دستمون داریم در به در دنبال سوراخ کردن در و دیواریم. می‌خوایم از راه حل به مشکل برسیم! به این فکر نمی‌کنیم که فناوری اطلاعات یک ابزاره و فقط یکی از راه‌های حل یک مشکل به حساب میاد نه تنها راه حل. مثلا اگه سیستم آموزشی دانشگاه‌ها به همون فرم قدیمی(اعلام نمرات توی تابلو اعلانات و ثبت نمرات توی دفتر و...) جواب می‌داد و مشکلی به وجود نمیاورد چرا باید بریم این همه دردسر نرم‌افزار و سخت‌افزار و امنیت و... رو تحمل کنیم سامانه بیاریم بالا که آخر سر همه دانشجوها زیر آب دانشگاه رو توی توئیتر بزنن! البته این حرف‎‌های من به معنی این نیست که کلا بی‎خیال توانایی و داشته‌هامون بشیم، من فقط می‌خواستم کمک کنم به درست فکر کردن و درست تصمیم گرفتن؛ همین.بی‌صبرانه منتظر نظرات و حرف‌های شما عزیزان هستم، اگه راه حل یا تجربه باشه که عالیه:)</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Sat, 02 Oct 2021 14:29:51 +0330</pubDate>
            </item>
                    <item>
                <title>یک خودرمزنگار(Autoencoder) ساده برای بازسازی تصاویر</title>
                <link>https://virgool.io/@mahdiakhi/%DB%8C%DA%A9-%D8%AE%D9%88%D8%AF%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1autoencoder-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%A7%D8%B2%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%D8%B3%D8%AA-%D8%AE%D8%B7-lodnce4fhdzq</link>
                <description>سلام امیدوارم حالتون خوب باشه و حسابی درگیر یادگرفتن و پیاده سازی کلی چیزای هیجان انگیز باشید. برخلاف نوشته‌هایی که تا الان براتون گذاشتم تصمیم گرفتم که از این به بعد علاوه بر مباحث مهندسی نرم‌افزار(گاه گاهی هم توانایی های فردی) به سراغ مباحث علم داده هم برم و براتون از کارایی که می‌شه انجام و یا خودم دارم انجام می‌دم بنویسم. به عنوان اولین نمونه هم سعی دارم پیاده سازی یک خودرمزنگار(Autoencode) که یکی از ساده‌ترین نوع شبکه‌های عصبی هست رو براتون توضیح بدم. امیدوارم که چیز به درد بخوری از توش در بیاد. همونطور که می‌دونید (اگر نمی‌دونید اینجا رو بخونید) خود رمزنگارها شبکه‌های عصبی هستن که ورودی و خروجی یکسانی دارن. یعنی شما یک ورودی (عکس، متن یا هرچیز دیگه) رو به این شبکه می‌دین و انتظار دارید همون رو هم در خروجی ببینید! شاید یکم گیج شده باشید چون احتمالا تا الان از شبکه‌های عصبی برای پیش بینی و کلاس‌بندی و این چیزا استفاده می‌کردید و اینکه یه چیزی بدی و دوباره همون رو تحویل بگیرید یکم ناجور باشه. اما این شبکه‌ها کارشون همینه. یعنی یک ورودی از کاربر می‌گیرن و سعی می‌کنن با دقت بالایی همون رو توی خروجی تولید کنن. اما این کار به چه دردی می‌خوره؟! شبکه با این کار اصلی‌ترین ویژگی های ورودی رو یاد می‌گیره و بر اساس اون آموخته‌ها دوباره همون ورودی رو توی خروجی تولید می‌کنه. همین کار به ظاهر ساده کلی استفاده برای ما داره که به صورت تیتر وار براتون می‌گم:استخراج ویژگی(همین که گفتیم اصلی‌ترین ویژگی‌ها رو یاد می‌گیره و سعی می‌کنه از اول مدل رو بسازه)کاهش فضای مسئله(وقتی شما تونستید ویژگی‌های اصلی یک مسئله رو در بیارید یعنی تونستید اون رو خلاصه کنید)از بین بردن نویز(مثلا تصاویری که شامل نویز هستن رو می‌تونید با این شبکه‌ها باز سازی کنید و نویزها رو از بین ببرید)فشرده سازی اطلاعاتحالا که یه خلاصه از این که خودرمزنگار چیه و چه کاربردی داره گفتیم، می‌خوایم بریم سراغ پیاده سازی یک خودرمزنگار ساده. خودرمزنگارها انواع مختلفی دارن مثل خودرمزنگار ساده، خودرمزنگار کانولوشن، خودرمزنگار اسپارس و... که ما سراغ خودرمزنگار ساده می‌ریم. برای پیاده سازی هم از Keras عزیز استفاده می‌کنیم(با وجود تنفر اینجانب از پایتون) و مجموعه داده‌مون هم همون مجموعه داده معروف اعداد دست نویس انگلیسی (mnist digit) هستش.پیاده سازیبرای پیاده سازی اول ما نیاز داریم تا یک سری از کتابخونه‌ها رو وارد کنیم:from keras.datasets import mnist
import matplotlib.pyplot as pltبعد از اون باید مجموعه داده‌ای که مدنظرمون هست رو به برنامه اضافه کنیم، خوشبختانه چون مجموعه داده مد نظر ما خیلی پرکاربرد و ساده است کراس اون رو توی خودش داره و ما نیاز نداریم که دانلودش کنیم. توی تیکه کد زیر ما مجموعه داده mnist که شامل تصاویر دست خط اعداد انگلیسی است رو توی متغییرهای Train و Testمون می‌ریزیم:# load (downloaded if needed) the MNIST dataset
(X_train, y_train), (X_test, y_test) = mnist.load_data()بریم چندتا از این اعداد رو نشون بدیم که ببینیم با چی سر و کار داریم. با تیکه کد زیر می‌شه با استفاده از کتابخونه matplotlib این کار رو انجام داد. ما از این کتابخونه می‌خوایم که چهارتا عدد اول داده‌ها رو برامون نشون بده:# plot 4 images as gray scale
plt.subplot(221)
plt.imshow(X_train[0], cmap=plt.get_cmap(&#039;gray&#039;))
plt.subplot(222)
plt.imshow(X_train[1], cmap=plt.get_cmap(&#039;gray&#039;))
plt.subplot(223)
plt.imshow(X_train[2], cmap=plt.get_cmap(&#039;gray&#039;))
plt.subplot(224)
plt.imshow(X_train[3], cmap=plt.get_cmap(&#039;gray&#039;))

# show the plot
plt.show()که می‌شه به این صورت:حالا که داده‌ها لود شدن باید ببینیم چه پیش پردازش‌هایی نیاز داره تا با اعمال کردن اونها بتونیم از داده به شکل درستی استفاده کنیم. اگر متغیر X_train رو چاپ کنیم، متوجه می‌شیم که این متغییر شامل 60 هزار تا ماتریس 28*28 هستش که هرکدوم از این ماتریس‌ها یک عکس هستش. هر کدوم از خونه‌های این ماتریس هم یک عدد بین 0 تا 255 هستش که نشون دهنده رنگ اون در فرمت RGB است. تنها پیش پردازشی که ما برای این داده‌ها نیاز داریم نرمال‌سازی(normalization) داده‌هاست که برای هم اسکیل کردن و بردن داده‌ها توی بازه‌ی 0 تا 1به جای بازه 0 تا 255 هستش. این کار رو با کد زیر می‌تونیم انجام بدیم:X_train_flat = X_train.reshape(60000, X_train.shape[1]*X_train.shape[2])
X_test_flat = X_test.reshape(10000, X_test.shape[1]*X_test.shape[2])

# Normalize values
X_train_flat = X_train_flat/255
X_test_flat = X_test_flat/255حالا که داده‌ها رو هم نرمال کردیم، نوبت به درست کردن شبکه عصبی یا مدلمون می‌رسه:) شبکه‌های خودرمزنگار از دو قسمت encoder و decoder تشکیل شدن. توی بخش اول یا encoder ما داده رو از ابعاد با اندازه بالا(اینجا 784تایی) می‌بریم به ابعاد کوچکتر مثلا 32تایی یا حتی کمتر. این کار رو می‌تونیم توی چند لایه انجام بدیم مثلا از 784 به 512 بعد به 256 بعد 128 بعد 64 و در آخر هم 32 یا اینکه مستقیم از 784 به 32 بریم انتخاب این معماری‌ها به فاکتورهای زیادی وابسته است. ما اینجا به روش اول عمل می‌کنیم یعنی از 784 به 32 و بعد از اون هم به 2 میریم. توی بخش دوم که decoder هستش داده‌ها از ابعاد کمتر به ابعاد بزرگتر می‌رن مثلا اینجا از 2 به 784 می‌ریم. توی بخش encode شبکه ویژگی‌ها رو یاد می‌گیره و توی بخش decode سعی می‌کنه با چیزایی که یاد گرفته دوباره ورودی رو بسازه و به خروجی ببره. معماری‌ای که ما انتخاب کردیم یک ورودی با 784 نورون، یک لایه مخفی با 32 نورون، بعدش لایه مخفی دوم با 2 نورون لایه مخفی بعدی با 32 نورون و آخر هم لایه خروجی با 784 نورون هستش که توی شکل زیر یک شماتیک ازش رو براتون نشون می‌دیم:برای درست کردن مدل، از روش تابعی(functional) توی کراس استفاده می‌کنیم. یعنی هر لایه رو جدا درست می‌کنیم و بعد به لایه بعدی ارتباطش می‌دیدم. برای این که بتونیم مدلمون رو بسازیم نیاز داریم یه سری کلاس‌ها رو از کراس بگیریم. توی خط اول تیکه کد زیر ما کلاس‌های Dense  و Input رو از کراس وارد برنامه می‌کنیم و در ادامه هم لایه‌ها رو می‌سازیم. غیر از لایه آخر که تابع فعال Sigmoid برای اون استفاده شده، لایه‌های قبلی همه از تابع Relu استفاده می‌کنن:from keras.layers import Input, Dense
input_1 = Input(shape=(X_train_flat.shape[1],))
hidden_1 = Dense(32, activation=&#039;relu&#039;)(input_1)
latent_space = Dense(2, activation=&#039;relu&#039;)(hidden_1)
hidden_2 = Dense(32, activation=&#039;relu&#039;)(latent_space)
output_1 = Dense(X_train_flat.shape[1], activation=&#039;sigmoid&#039;)(hidden_2)حالا که لایه‌ها مون رو ساختیم و اونها رو به هم وصل کردیم باید اونها رو به مدلمون بدیم پس:from keras.models import Model
autoencoder = Model(inputs=input_1, outputs=output_1)
encoder = Model(inputs=input_1, outputs=latent_space)
decoder_input = Input(shape=(2,)) 
decoder_layer_1 = autoencoder.layers[-2](decoder_input)
decoder_output = autoencoder.layers[-1](decoder_layer_1)
decoder = Model(inputs=decoder_input, outputs=decoder_output)حالا که مدلمون آماده شده باید مدل رو کامپایل کنیم. برای تابع هزینه از تابع binary_crossentropy استفاده می‌کنیم چون اینجا داده‌هامون از نوع 0 و 1 هستن، یعنی یک پیکسل یا سفید یا سیاه. برای optimizer هم از تابع adam استفاده می‌کنیم:autoencoder.compile(loss=&#039;binary_crossentropy&#039;, optimizer=&#039;adam&#039;,accuracy=&#039;&#039;)حالا مدلمون آماده استفاده است. کافیه که اون رو با داده‌های آموزشیمون آموزش بدیم:autoencoder.fit(X_train_flat, X_train_flat, epochs=10, validation_data=(X_test_flat, X_test_flat))برای اینکه خروجی رو ببینیم باید اول از encoder بخوایم که داده‌ها رو برامون کد کنه. پس داده‌های آموزشی رو بهش می‌دیم و خروجی رو توی متغیر encoded_values می‌ریزیم.encoded_values = encoder.predict(X_train_flat)بعد از این که داده‌های کد شده رو گرفته باید اونها رو دیکد کنیم و دوباره اونها رو به اندازه 28 در 28 پیکسل برگردونیم تا بتونیم اونها رو ببینیم:decoded_values = decoder.predict(encoded_values)
decoded_values = decoded_values.reshape(60000, 28, 28)حالا خروجی ما آماده است. اول بریم 10 تا از داده‌های اصلی رو نشون بدیم بعد ببینیم که خودرمزنگار اونها رو چجوری توی خروجی بازسازی کرده. تیکه کد زیر برای ما داده‌های 110 تا 120 مجموعه داده اصلی رو نشون می‌ده:
# Display some images
fig, axes = plt.subplots(ncols=10, sharex=False,
sharey=True, figsize=(20, 7))
counter = 0
for i in range(110, 120):
    axes[counter].set_title(y_train[i])
    axes[counter].imshow(decoded_values[i], cmap=&#039;gray&#039;)
    axes[counter].get_xaxis().set_visible(False)
    axes[counter].get_yaxis().set_visible(False)
    counter += 1
plt.show()که خروجی زیر رو تولید می‌کنه:برای نشون دادن داده‌های دیکد شده هم از کد زیر استفاده می‎‌کنیم و داده‌های 110 تا 120 اون رو نشون می‌دیم:# Display some images
fig, axes = plt.subplots(ncols=10, sharex=False,
sharey=True, figsize=(20, 7))
counter = 0
for i in range(110, 120):
    axes[counter].set_title(y_train[i])
    axes[counter].imshow(decoded_values[i], cmap=&#039;gray&#039;)
    axes[counter].get_xaxis().set_visible(False)
    axes[counter].get_yaxis().set_visible(False)
    counter += 1
plt.show()عکس زیر خروجی خودرمزنگار رو نشون می‌ده که سعی کرده تا اعداد رو بازسازی کنه:همونطور که می‌بینید تونستیم تا حدود زیادی اعداد رو به همون شکلی که هستن توی خروجی بازسازی کنیم. احتمالا شما بتونید با تغییر دادن بعضی ویژگی‌های شبکه اون رو دقیق‌تر کنید و میزان خطا رو کاهش بدید. راستی کد رو هم براتون توی این کولب گذاشتم، می‌تونید اونجا ببینید و اجرا کنید.مطالب مرتبط با این نوشته در وبلاگ من:معرفی توابع فعال ساز در شبکه‌های عصبی با جزئیات و کاربردها</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Sun, 29 Aug 2021 19:55:47 +0430</pubDate>
            </item>
                    <item>
                <title>خلق ارزش؛ بهتر از هدف</title>
                <link>https://virgool.io/@mahdiakhi/%D8%AE%D9%84%D9%82-%D8%A7%D8%B1%D8%B2%D8%B4-%D8%A8%D9%87%D8%AA%D8%B1-%D8%A7%D8%B2-%D9%87%D8%AF%D9%81-ymlwrr2csvnh</link>
                <description>سلام توی این مطلب می‌خوایم با هم یک داستانی که معمولا زیاد برامون پیش میاد رو بررسی کنیم و از این به بعد روشن‌تر و درست‌تر مسیرمون رو مشخص کنیم. داستان چیه؟ داستان اینه که خیلی از ماها برای خودمون اهدافی رو تعیین می‌کنیم و تلاش می‌کنیم به سمت اونها حرکت کنیم؛ اما این بین همه‌ی ما به همه‌ی اهدافمون نمی‌رسیم. مسلما توی راهی که به سمت یک هدف حرکت می‌کنیم کلی اتفاقات ناجور و سخت وجود داره که باعث می‌شن ما نتونیم به هدفی که در نظر داشتیم برسیم. توی این مطلب می‌خوایم ببینیم که چطوری می‌شه سنگینی و ضرر این نرسیدن رو کم کنیم؟ به قولی به یک نقطه سر به سر بین چیزی که از دست دادیم و چیزی که به دست آوردیم برسیم.بخش دردناک؛ نشد که بشه :(فریادهای حسن یزدانی بعد از شکست در فینال المپیکهمه‌ی ما تجربه‌ی دویدن و نرسیدن رو داریم. بچگی دوچرخه دوست داشتیم و پولامونو جمع کردیم ولی نتونستیم بخریم؛ بزرگ‌تر که شدیم توی امتحانات مدارس تیزهوشان شرکت کردیم و قبول نشدیم(همون بهتر!)؛ کنکور امتحان دادیم و چیزی که خواستیم نشد و خیلی مثال‌های دیگه که معمولا برای خودمون یا اطرافیانمون پیش اومده. توی این جور مواقع معمولا همه احساسات مشابهی داریم؛ حس شکست، دلشکستگی، نرسیدن به چیزی که فکر می‌کردیم حقمونه و براش تلاش کردیم و کلی حس‌های بد دیگه که حسابی حالمون رو می‌گیرن. فکر نکنم بشه کسی رو پیدا کرد که از این قضیه مستثنی باشه و بگه اصلا براش مهم نیست. آدم‌ها توی این موقعیت توی دو چیز با هم متفاوتن : اول؛ میزان ناراحتی و مدت زمانی که این احساس رو دارن، و دوم واکنششون حین و بعد از ناراحتی از شکست.خیلیا تا مدت‌ها، شاید حتی تا ابد، این احساسات بد رو همراه خودشون دارن و همش حسرت نرسیدن و نشدن رو می‌خورن خیلیا بعد از مدتی پشت گوش می‌اندازن و بعد از مدتی هم فراموش می‌کنن. بعضیا باهاش رو به رو می‌شن و تصمیم می‌گیرن که یا دوباره شروع کنن یا مسیر جدیدی رو توی زندگی برن؛ این که واکنش آدما چی هستش به عوامل زیادی بستگی داره، عواملی مثل تربیت خانوادگی، اخلاق شخصی، احساسات، فرهنگ و کلی چیزای دیگه توی این واکنش‌ها دخیل هستن. ما قصد نداریم درمورد این عوامل صحبت کنیم، ما می‌دونیم که پیروزی بدون شکست امکان نداره و شکست چیزی اجتناب ناپذیر توی راه موفقیت هستش. توی این مطلب می‌خوایم ببینیم چطور می‌شه میزان سنگینی این شکست‌ها رو کم کنیم و طوری حرکت کنیم که اگر به هدفمون نرسیدیم کمترین ضرر ممکن رو کرده باشیم. خب به طبع اینا احساسات منفی و واکنش ما هم کنترل شده‌تر و خردمندانه‌تر خواهد شد. برای این مورد باید اول ببینیم دقیقا با چیا طرف هستیم، توی بخش بعدی در این مورد صحبت می‌کنیم.هدف هدف؛ هدف دو نفرنام اثر &quot;مسافرکش در انتظار مسافر&quot;وقتی ما برای خودمون اهدافی رو در نظر می‌گیریم، در واقع برای خودمون مقاصدی رو تعریف می‌‎کنیم که طی یک سفر قصد داریم به اونها برسیم. مقصد که برای ما مشخصه(با فرض اینکه قبلش از هدف به شناخت درستی رسیدیم و می دونیم که چیز درستی رو می خوایم) چیزی که این وسط متغیره و انتخاب چند و چونش دست خودمونه، مسیره. برای رسیدن به هر هدف راه‌های مختلفی برای هر شخص وجود داره(به تعداد آدما راه هست برای رسیدن به خدا! ) همون طور که برای رفتن از یک شهر به شهر دیگه مسیرهای مختلفی وجود داره. این که آیا ما به هدفمون می‌رسیم؟ یا این که رسیدن به هدف چقدر ممکن و ساده‌ست(چقدر برای ما هزینه داره)؟ در گرو مسیریه که انتخاب می‌کنیم! به این مثال ساده اما مهم توجه کنید: فرض کنید می‌خواید از شهر خودتون به اصفهان سفر کنید(اصفهانیا فرض کنن می‌خوان برن شیراز :/) فارغ از این که چه مسیری رو انتخاب می‌کنید در طول مسیر دو نگرش متفاوت جلوی شماست اول این که گازش رو بگیرید و به عشق اینکه برسیم اصفهان می‌ترکونیم و کلی حال می کنیم به چیزی جز اصفهان فکر نکنید. دوم اینکه ریلکس و رمانتیک در حالی که به اصفهان فکر می‌کنید از مسیر لذت ببرید و کلی منظره و ماشین نگاه کنید و کلی با هم صحبت کنید و عکس بگیرید و خوش بگذرونید. با فرض اینکه این دو سفر در یک مسیر و با شرایط کاملا مشابه انجام شده باشن(جهان‌های موازی!) خطراتی که بین راه ممکنه برای شما پیش بیاد احتمال یکسانی دارن. حالا فرض کنید بین راه ماشین دچار مشکل می‌شه و شما نمی‎‌تونید سفر رو ادامه بدید. خب در هر دو حالت حتما ناراحت هستید و کلی بد و بی‌راه به زمین و زمان می‌گین. اما توی حالت دوم این درد و این خود خوری کمتر هستش و باعث می‌شه شما تا حدودی کنترل شده‌تر و درست‌‎تر عمل کنید. درسته که شما به چیزی که می‌خواستین نرسیدین اما بین راه کلی هم حال کردید و این حالِ خوبِ جمعی توی افکار و احساستون تاثیر خیلی خوبی گذاشته. این مثال خیلی ساده یک موضوعِ عمیق و حیاتی رو بیان می‌کنه که گم شده‌ی این روزهای زندگی خیلی از ماهاست؛ &quot;زندگی ارزش محور یا زندگی هدف محور&quot;.زندگی هدف محورهدف هدف هدف هدف و هدف. این روزا دور و بر همه‌ی ما پر شده از هدف‌گرایی؛ کتابای زیادی در این مورد نوشته شده، آدمای زیادی در مورد اهداف و در ستایش هدفمندی صحبت کردن و اثرات ارزشمندی رو به جا گذاشتن. آدمای زیادی هم هستن که  به عنوان کسایی که به اهدافشون رسیدن الگو قرار گرفتن و توی جاهای مختلف مثل شبکه‌های اجتماعی معروف شدن. اما یه چیزی این وسط گمه، یه چیزی نیست یه چیز بزرگ چیزی شاید به اندازه‌ای بزرگتر از 80 درصد قضیه! و اون مسیره...توی زندگی هدف محور، آدما برنامه ریزی زندگی خودشون رو بر پایه اهداف انجام می‌دن، میزان موفقیت و شادی همدیگه رو میزان رسیدن به اهدافشون می‌دونن و خیلی توجه نمی‌کنن که چطور به این اهداف رسیدن. آدمایی که اهداف و رسیدن به اهداف براشون اولویت اول هستش توی انتخاب مسیر و نگرش طی کردن مسیر خیلی چیزها رو در نظر نمی‌گیرن. چیزایی که ممکنه به چشم نیان یا حتی دست و پا گیر باشن اما تَه مسیر یا حتی اواسط مسیر فارغ از رسیدن یا نرسیدن، خیلی به کارشون میاد. باید در نظر داشته باشیم که پایان یک مسیر و رسیدن یا نرسیدن به یک هدف چه بخوایم چه نخوایم شروع یک مسیر دیگه برای یک هدف دیگه است. در واقع ما 80 درصد زندگی رو، یا حتی بیشتر، در حال سفر کردن هستیم و همش بیخِ بیخش 20 درصد رو در اهدافمون به سر می‌بریم! به نظرتون برای یک ورزشکار قهرمانی المپیک پایان راهه؟ نه! شروع تلاش برای قهرمانی بعدیه! برای یک دانشمند رسیدن به نوبل پایان راهه؟ نه! شروع تلاش برای درک و پیدا کردن مفاهیم عالی‌تر و احتمالا بردن نوبل بعدیه! می‌بینید اینها عالی‌ترین چیزا و احتمالا ارزشمندترین چیزهایی هستن که ما می‌تونیم توی حرفه خودمون بهشون برسیم اما بازم تهش دوباره حرکت می‌کنیم.زندگی ارزش محورراه ارزشمند و طلاییزندگی ارزش محور مثل حرکت توی یک جاده از جنس طلاست! این جان جانان یکی از بزرگ‌ترین و البته مظلوم‌ترین گمشده‎‌های عصر ماست. 80 درصدی که معمولا به دید مزاحم و انتظار و مشقت و سختی و شب نخوابی و... بهش نگاه می‌شه. در صورتی که ما این بلا رو سرش آوردیم! توی زندگی‌‎های ارزش محور آدم‌ها در عین حال که روی هدف متمرکز هستن و برای رسیدن بهش تلاش می‌کنن به مسیر اهمیت ویژه‌ای می‌دن. نه با دید بهینه بودن و سریع بودن بلکه با این دید که چی دستگیرشون می‌شه اگر این مسیر رو با این نگرش برن؟ فارغ از اینکه تهش رسیدنی هست یا نه؛  چه ارزشی براشون ایجاد می‌شه و این مسیر چی بهشون اضافه می‌کنه؟ برخلاف هدف که رسیدن بهش تحت تاثیر شرایط و عوامل مختلفیه، مسیر یه چیز تضمینی و صد در صدیه. شما باید مسیر رو برید که ببینید تهش به هدف می‌رسه یا نه. در واقع شما مسیرها رو زندگی می‎‌کنید اما اهداف رو به دست میارید. اگه دانش آموزی با این دید به مسیر رسیدن به دانشگاه نگاه کنه که توی این مسیر ارزشی به دست بیاره یا ارزشی خلق می‌کنه قطعا دیگه نرسیدن به دانشگاه براش این سختی رو نداره، چون مطمئنه که علمش رو داره و اون چیزی که باید به دست میاورده رو آورده و کلی چیز بلده. اگه دانشجوها رو با این دید به دانشگاه بفرستیم قطعا دیگه مدرک هدف نیست و متوجه می‌شن که مهم این راهی هست که می‌رن و مهم اینه که توی این راه چی به دست میارن و اون مدرک واقعا چیزی جز یه کاغذ نیست! وقتی شما یک زندگی ارزش محور رو در پیش می‌گیرید وقتی که به اهداف می‌رسید کیفیت شما به اندازه جایگاه‌تون هست و شما دقیقا جایی هستید که باید باشید. توی این حالت حتی اگر به چیزی که می‌خواستید نرسیدین بازم شما کیفیت و لیاقت اون چیز رو دارید. شاهزاده‌ای که توی راه پادشاهی حرکت می‌کنه کلی شخصیت و رفتار و جایگاهش رفیع می‌شه و اگر روزی حتی پادشاه هم نشه کی می‌تونه تشخیص بده که شاه نیست؟ :) اون شخصیت، رفتار، منش و لیاقت شاهانه رو داره، مثل حسن یزدانی که طلا رو نبرد اما توی راه تمرینات المپیک و زندگی حرفه‌ای و شخصی اونقدر به یاد مردم بود و هواشونو داشت که هیچکس نبردنش رو یادش نیست، چون اون یه جاده رو توی زندگیش روشن کرده حالا یه چراغ با قطر 8.5(اندازه مدال طلای المپیک) سانت زیاد هم برای ما مردم به چشم نمیاد.زندگی معناگرا که توش احساس &quot;ارزشمند&quot; بودن برای خودمون و جامعه ستایش می‌شه چیزیه که گمشده و آرامش رو از زندگی ما برده. یه زندگی که می‌دونی کاری که داری می‌کنی به چند نفر سود می‌رسونه و زندگی رو براشون ساده‌تر می‌کنه. نتیجه گیریماها کلی آدم با آرزوها و استعدادهای رنگارنگ هستیم. ماها همیشه در حال حرکت توی مسیرهای مختلف هستیم. مسیر کاری، مسیر زندگی شخصی، مسیر علمی و... . بین این مسیرها ما باید به اهدافی هم برسیم و این ناگزیره. اما باید توجه داشته باشیم که ما توی مسیرها باید به این اهداف برسیم و این مسیرها هستن که خیلی مهمن و برای ما نقشه به حساب میان. اگه اصل کار اهدافمون باشن و مسیرها رو نا دیده بگیریم زندگیمون از بالا شبیه یه شهر با چندتا چراغ روشنه و اون چندتا چراغ هم زیاد نیستن(مگه ما توی زندگی چندتا هدف داریم و توی این اهداف مگه ما به چندتاشون می‌رسیم؟) اما اگر مسیرها و ارزشی که برای ما خلق می‌کنن رو اصل زندگی قرار بدیم، زندگیمون از بالا شبیه یه شهر با کلی خیابون و کوچه‌ی روشن و رنگارنگ می‌شه که راه رو برای آدمای دیگه هم روشن کرده، وسط این همه نور چندتا چراغ خاموش به چشم نمیاد :)سیب و زمینی و گلوله برفی- صاحب اثر: خودمیادمون باشه اهداف و مسیرهامون رو جوری تعیین کنیم که منتهی به خلق ارزش بشن. رفتن این راه چیزی خارج از اختیار ماست، اما این ما هستیم که تصمیم می‌گیریم مثل یک سیب زمینی روی رَنده این مسیر رو بریم یا مثل یک گلوله برفی که از کوه پایین میاد که حتی اگه به چیزی که می‌خواد برخورد نکنه کلی تغییر توی مسیر ایجاد می‌کنه.</description>
                <category>مهدی آخی</category>
                <author>مهدی آخی</author>
                <pubDate>Wed, 18 Aug 2021 01:50:47 +0430</pubDate>
            </item>
            </channel>
</rss>