<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمد حسن بشری موحد | Hassan Bashari</title>
        <link>https://virgool.io/feed/@moheb</link>
        <description>در جست‌و‌جوی اصالت ,بی علاقه به میان‌بُر، در حال کمک به مردم برای فهمیدن و به کارگیری هوش مصنوعی.
 https://t.me/aianddesign</description>
        <language>fa</language>
        <pubDate>2026-06-17 09:32:43</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/7104/avatar/NJeZ7m.png?height=120&amp;width=120</url>
            <title>محمد حسن بشری موحد | Hassan Bashari</title>
            <link>https://virgool.io/@moheb</link>
        </image>

                    <item>
                <title>آمار بازدید مطالب من در سال ۹۸</title>
                <link>https://virgool.io/@moheb/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%85%D8%B7%D8%A7%D9%84%D8%A8-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B8-rkng4eobmyuw</link>
                <description>اگر دستاوردی را نتوانم اندازه بگیرم، چیزی در دست ندارم.اشتباه نشود، این به معنای تمایل به بهترین بودن  و یا میل به اثبات چیزی نیست، اما تنها چیزی که می‌تواند برای بهتر شدن به من کمک کند یک نقشه راه است، از مسیری که طی کرده‌ام، تا بدانم چه اثری از خود به جا گذاشته‌ام. یک تصویر کلی که بتواند خیلی ساده نشانم دهد تلاش من چه اثری بر جامعه‌ام گذاشته است.ویدیوی آمار مخاطبین من را ببینید: https://cdn.virgool.io/annual-report/1398/kkqflztslf85-0iTwr.mp4 دستاوردهای من در سال ۹۸در سال ۹۸، من در مجموع ۱ پست در ویرگول منتشر کردم و پست‌های من ۵۹ مرتبه لایک شدند و افراد ۱۶ بار نظرات خود را روی پست‌های من به اشتراک گذاشتند. امسال ۵۳ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. اما چیزی که این دستاورد را ارزشمندتر می‌کند اثری است که این پست‌ها از خود به جا گذاشتند.اثر پروانه‌ای منطبق آمار ۱,۷۳۹ بار پست‌های من خوانده شدند و زمانی حدود ۳۸۰,۱۱۵ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیت ۷۲٬۹۴۰٬۰۰۰ نفری که در ایران به اینترنت دسترسی دارند، من توانستم حدود ۰/۰۰۵۲۱۱ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم. عددی که با تمام کوچک بودنش، اثر بزرگ و ارزشمندی است.اما این عددها فقط توضیحی است از آنچه که برای مخاطبانم به ارمغان آورده‌ام، اثر ارزشمند‌تری که با نوشتن در ویرگول از خود به جا گذاشته‌ام، تلاش پنهانی بوده که برای حفظ محیط زیست کرده‌ام. من با انتشار پست‌های خودم در فضای ویرگول توانستم در مصرف کاغذ صرفه جویی کنم؛ یعنی اگر قرار بود پست‌هایم را چاپ  و به دست تک تک خوانندگان برسانم باید ۸,۷۵۷ کاغذ مصرف می‌شد.</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Thu, 26 Mar 2020 04:58:16 +0430</pubDate>
            </item>
                    <item>
                <title>چرا هوش مصنوعی در سازمان‌ها شکست می‌خورد؟</title>
                <link>https://virgool.io/@moheb/%DA%86%D8%B1%D8%A7-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B1-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D9%87%D8%A7-%D8%B4%DA%A9%D8%B3%D8%AA-%D9%85%DB%8C%D8%AE%D9%88%D8%B1%D8%AF-dvhimv6twg6h</link>
                <description>سطح به‌کارگیری هوش مصنوعی در زندگی و کسب و کار ،در حد نام پرآوازه‌ی اون نیست. این جمله‌ایه که خیلی می‌تونه جالب توجه باشه. واقعا چرا چیز به این جذابی هنوز نتونسته جای خودش در حد و اندازه‌ی اسمش باز کنه؟ در این نوشته مطالبی که  براساس تجربه و مطالعه به ذهنم می‌رسه رو بیان می‌کنم. امیدوارم اگر نکته‌ای در مورد این موارد به ذهنتون میرسه اون رو از من دریغ نکنید.هوش مصنوعی چه کار نمی‌تواند بکند؟کارمندی رو تصور کنید که در رزومه‌اش نوشته من همه کار بلدم! مواجه شدن با همچین آدمی به شدت گیج کننده است. چون نمی‌دونید دقیقا باید ازش چی بخواید. نمی‌دونید کجا میشه بهش تکیه کرد و از اون مهم تر کجا نمیشه بهش تکیه کرد. مشکل اول هوش مصنوعی در دنیای امروز اینه بیشتر آدما فقط چند جلوه‌ی محدود از هوش مصنوعی رو دیدن و دقیقا حد و مرزی برای توانایی های اون در ذهن ندارند. این نادقیق بودن مرز توانایی بیشترین ضربه رو به هوش مصنوعی زده. و توضیح این مرز برای دیگران(غیر متخصص‌ها) هم خیلی کار سختیه.جزیره‌ی هوش مصنوعیهمون طور که طراحی اشتباه معماری یک نرم‌افزار می‌تونه طراح و تیم رو به خاک سیاه بشونه، طراحی نادرست معماری یه سازمان هم می‌تونه همین بلا رو سر اون سازمان بیاره. این یه جمله‌ی بدیهیه و تقریبا همه‌ قبولش دارن.  اما این جمله چه ربطی به هوش مصنوعی داره؟ یکی از اشتباهات سازمان‌ها تعبیه‌ی یک جزیره به عنوان هوش مصنوعی در سازمانه. البته برای همه‌ی سازمان‌ها شاید این مسأله اشتباه نباشه. یا حتی برای مدتی این‌ کار پذیرفتنی باشه. اما به هرحال باید همه‌ی طراحان معماری یک سازمان متوجه باشند که تاسیس یه واحد مجزا برای هوش مصنوعی مثل اینه که ما در یه شرکت نرم‌افزاری واحد طراحی الگوریتم داشته باشیم. پس باید دیر یا زود یه فکری به حالش بکنیم! image credit : alltop.comنبود اتمسفر بین رشته‌ای هوش مصنوعی و بیزینسوقتی در مورد هوش مصنوعی صحبت می‌کنیم داریم در مورد یه تکنولوژی سطح بالا (های‌تک) صحبت می‌کنیم. این سطح بالا‌ی فناوری ایجاب می‌کنه که تنها افراد متخصص در اون دست به نوآوری بزنن. از طرفی برای مطرح شدن در صحنه‌ی اجتماع به انواع دانش‌های مدیریت و بازاریابی و به قول خودمون بیزینسی احتیاج داریم و البته تجربه‌ی زیاد در اون‌ها. معمولا در فناوری‌هایی که وارد بازار می‌شن این خلا با آدم‌های چند رشته‌ای پر میشه. افرادی که می‌تونن با شناخت خوب بازار از یه طرف و پیشنهاد یه محصول یا فیچر از طرف دیگه، توسعه‌ی محصول رو راهبری کنن.مثلا ممکنه یه متخص بازاریابی پیشنهاد یه فیچر توی رابط کاربری نرم افزار بده. اما در مورد هوش مصنوعی یه خلأ بزرگ داریم. این خلأ باعث میشه وقتی فرد آشنا به بازار وقتی نیازی رو می‌بینه نتونه تشخیص بده که آیا هوش مصنوعی می‌تونه این نیاز رو برطرف کنه یا نه. یا از اون طرف وقتی راه حل میده آیا اصلا از دیدگاه متخصص هوش مصنوعی این راه حل اجرایی هست یا نه. خود متخصص هوش مصنوعی هم که مجال بازارسنجی و کارای بیزینسی رو نداره. خوب نتیجه‌اش میشه همینی که الان هست. تل‌انبار مقالات جذاب هوش مصنوعی که هیچ کدوم در زندگی مردم حضور ندارن. پس باید به فضایی وجود داشته باشه تا بشه دلار و ریال رو به گیگابایت و ترابایت ترجمه کرد و بالعکس!حوصله‌ی کم سازمان‌هایه سازمان پر از آدم پرحوصله هم می‌تونه در سطح سازمانی بی‌حوصله باشه. به دلایل مختلف مثل کم‌بود منابع، تعهدات کاری و غیره... . توسعه و به کارگیری هوش مصنوعی در یه مسأله‌ی واقعی این قدر به قول معروف پیچ و مهره داره که بعضی وقتا حتی نمی‌شه براش زمان بندی مشخصی ارائه کرد. پس اگر شما مدیر یه سازمان کم حوصله هستید بهتره قید هوش مصنوعی رو بزنید.شروع بدون حساب و کتابجذابیت بیش از حد هوش مصنوعی باعث میشه که یه سازمان از پاسخ به این سوال غافل بشه که واقعا من چه انتظاری از کاربرد هوش مصنوعی دارم؟ آیا قراره فروشم رو بیشتر کنه؟ آیا قراره نرخ بازگشت سرمایه‌ام رو تغییر بده؟ در کاربرد هوش مصنوعی هم مثل هر صورت مسأله‌ی دیگری باید انتظارات رو مشخص کنیم و بعد از اجرای پروژه رسیدن یا نرسیدن به اون انتظارات رو مورد مطاله‌ی دقیق قرار بدیم.در یک جمله: لازم هست که توقعمون از هوش مصنوعی رو بر اساس KPI  به شکل روشنی تبیین کنیم.image credit: https://sevaa.com/blog/2018/05/what-are-key-performance-indicators/استفاده از افراد کم تجربهقیمت بالای نیروهای متخصص هوش مصنوعی از یه طرف و حس خوش‌خیالی مدیران از طرف دیگه باعث میشه که اون‌ها به استخدام نیروهای تازه‌کار در حوزه‌ی هوش مصنوعی روی بیارن. اما واقعیت چیز دیگه‌ایه. پیچیدگی هوش مصنوعی اون قدر خیلی زیاده که دانش‌آموخته‌ی هوش مصنوعی هم برای به کارگیری در محیط واقعی بیش از هر رشته‌ی دیگه‌ای به زمان احتیاج داره. پس اگه میخواید خیلی سریع به نتیجه برسید یه متخصص باتجربه رو به کار بگیرید و همون لحظه بی خیال نتیجه‌ی سریع بشید!. البته یه منتورمیتونه در این مسیر کمک‌کارتون باشه که خوب اون یه بحث دیگه است.شروع بزرگجالبه که سادگی در شروع تقریبا یه اصل جا افتاده است اما باز به دلیل توقع زیاد از هوش مصنوعی، این اصل مهم فراموش میشه. پیچیدگی میتونه باعث جذابیت محصول بشه اما از طرفی توسعه و تحویل به مشتری رو به تاخیر می‌اندازه. باید بین این دو چالش ،تعادل منطقی برقرار کرد. image credit : engineering.naukri.comچالش تجربه‌ی کاربری استفاده‌ی حداکثری از هوش مصنوعی میتونه تجربه‌ی کاربری محصول شما رو بسیار متفاوت کنه. این تفاوت همون قدر که میتونه باعث تمایز شما از دیگران بشه میتونه باعث سردرگمی کاربر بشه. پس این جا هم با یه تعادل یا بده بستان (trade-off) مواجه هستیم. برای جلوگیری از این مشکل حتما باید با با روش‌هایی - مثلا دموهای متعدد و ارائه‌های متنوع پیش از توسعه‌ی محصول- مطمئن بشید که واقعا این موجود، مطلوب کاربران هست یا نه.تخریب خلاق!فناوری همیشه رقیب مشاغل سنتی بوده و هست. مثلا در انگلستان وقتی ماشین نساجی ساخته شد مدتی طولانی مجال مطرح شدن -حتی از سمت حکومت‌ها- به اون داده نشد. الان هم این ترس وجود داره. ممکنه شما بخواید از هوش مصنوعی برای مکانیزه کردن یه فرآیند در درون سازمان خودتون استفاده کنید. در این شرایط اون کارمندی که داشته کار مربوطه رو انجام میداده نگران آینده‌ی شغلیش می‌شه. حالا فرض کنید که شما شرکتی هستید که محصولتون در ابعاد یک کشور قراره عده‌ای رو بیکار کنه. دیگه تکلیف معلومه. باید منتظر اتفاقات بزرگ‌تر باشید.ضعف دادهموضوع داده به تنهایی یک چالش چند وجهی و پیچیده است. چون هم زمان به زیر ساخت‌های سازمانی (شامل ساختارها و دستورالعمل‌ها و فرهنگ‌ها ) و زیر ساخت فنی سازمان ارتباط پیدا می‌کنه. واقعیت اینه که هوش مصنوعی در بستر یه سازمان داده-پیشران(Data-Driven) بهتر رشد می‌کنه. (برای آشنایی بیشتر با این مفهوم کتاب Creating a Data-Driven Organization رو پیشنهاد می‌کنم بخونید. حداقل بخش اول). محور هوش مصنوعی در سال های جاری، یادگیری ماشینه. وقتی صحبت از یادگیری ماشین می‌کنیم دیگه وجود داده اجتناب ناپذیره. چون ماشین از روی داده یاد می‌گیره. امیدوارم بتونم در یه پست مستقل این موضوع رو بیشتر بررسی کنم. اما حداقل برای نشون دادن اهمیت این موضوع این جمله رو با صدای بلند میگم که &quot;اگر داده‌ی خوب در اختیار ندارید قید هوش مصنوعی رو بزنید!&quot;.کلام آخرحوصله، دقت، برنامه‌ریزی و  بازخورد چهار واژه‌ی اصلی به حساب میاد. نه فقط در به کارگیری هوش مصنوعی. اما به دلیل حساسیت، پیچیدگی و ریسک بالا باید در بالاترین سطح ممکن صاحب این کلمه باشیم تا بتونیم یه مسیر موفق رو در بهره‌گیری از هوش‌مصنوعی در کسب وکار تجربه کنیم.لطفا اگر درتکمیل یا اصلاح این مطلب نکته‌ای به نظرتون می‌رسه اون رو از من دریغ نکنید.</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Tue, 26 Nov 2019 22:38:57 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری ماشین، جدال ذهن و چشم!</title>
                <link>https://virgool.io/@moheb/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D8%AC%D8%AF%D8%A7%D9%84-%D8%B0%D9%87%D9%86-%D9%88-%DA%86%D8%B4%D9%85-zqqnrodmnbe3</link>
                <description> هر چند این یک برداشت شخصی از یادگیری ماشین محسوب می‌شه اما اگر علاقه مند یا مشغول به فعالیت در زمینه‌ی یادگیری ماشین هستید توصیه می‌کنم حتما تا آخر همراه من باشید.حتی اگر در آخر نوشته مخالف صد در صد هم باشید قطعا این نگاه میتونه زمینه‌ی مناسبی برای بحث و تبادل نظر پیرامون چیستی یادگیری ماشین ایجاد کنه. اگر احیانا مطلب مشابه این در جای دیگری بود و نوشته‌های من تکراری به نظر می‌رسید زیاد خرده نگیرید چون من مطالعه‌ام خیلی زیاد نیست‌ :)جدال ذهن و چشمبه نظر می‌رسه بنیان یادگیری ماشین بر محور یک تنازع قدیمی و چالش بر انگیز شکل گرفته. تنازعی که ممکنه به شکل‌های مختلف در بیاد و نام های متفاوتی به خودش بگیره. این جدال بین دو دانش متفاوت شکل می‌گیره:دانشی که از داده‌ها استخراج میشه که می‌تونیم بهش بگیم دانش پسین.دانشی که از قبل درون ماشین وجود داره که بهش می‌تونیم بگیم دانش پیشین.هنر یه متخصص یادگیری ماشین اینه که بین بهره گیری از این دو دانش تعادل ایجاد کنه تا به بهترین حالت برسه.دانش پیشین شامل چیزهای متفاوتی هست. از جمله ساختار مدل یا به طور جامع‌تر، الگوریتم یادگیری (طبیعتا هر الگوریتمی داده‌ساختارهای خودش رو توضیح می‌ده). از طرفی دانش پسین  به نوع داده، حجم‌داده و ویژگی هایی که از داده مدنظر قرار می‌گیره بستگی داره.خوب قبل از این که وارد توضیح دقیق تر این جدال قدیمی بشیم اجازه بدید دو تا مفهوم رو بر اساس همین نگاه بررسی کنیم.یادگیری انتقالی (Transfer Learning)یادگیری انتقالی یعنی این که شما بتونید دانش پسین یک مدل رو به عنوان دانش پیشین در یه مدل دیگه به کار بگیرید! به همین سادگی.یادگیری بازنمایی (Representation Learning)یادگیری بازنمایی یعنی این که شما از داده‌های خام و در حالت بدون ناظر Unsupervised Learning بتونید یه بازنمایی جدید معنادار از داده‌ها پیدا کنید. این یعنی شما تونستید دانش پسین خودتون رو  علاوه بر داده‌های برچسب خورده از داده‌های برچسب نخورده هم استخراج کنید.  پیشنهاد می‌کنم پیرامون یادگیری بازنمایی این پست رو هم مطالعه بفرمایید. https://virgool.io/@moheb/%D8%A2%DB%8C%D8%A7-%D9%88%D8%A7%D9%82%D8%B9%D8%A7-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D8%A8%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B2%DB%8C%D8%A7%D8%AF-%D8%A7%D8%AD%D8%AA%DB%8C%D8%A7%D8%AC-%D8%AF%D8%A7%D8%B1%D8%AF-lteyibkvloyf جدال ذهن و چشم در دنیای احتمالاتیکی از رویکردهای اساسی در یادگیری ماشین رویکرد مبتنی بر احتمال هست. در این رویکرد، ما به داده‌ها به عنوان مقادیرِ یه متغیر تصادفی نگاه می‌کنیم. در دنیای یادگیری ماشین مبتنی بر احتمالات دو رویکرد اساسی وجود داره.  رویکرد بسامدگرا ( Frequentist Probability )رویکرد بیزین ( Bayesian Probability )تفاوت اصلی این رو رویکرد در میزان دخالت دادن دانش پیشین در یادگیری از روی داده است. در رویکرد بسامد گرا تنها ساختار مدل (یا همون توزیع احتمال) از قبل، توسط دانش پیشین تعیین میشه. اما در رویکرد بیزین ، دانش پیشین در مورد توزیع احتمال پارامتر ها هم اظهار نظر می‌کنه. در حقیقت در حالت بسامدگرا تنها داده‌ها متغیر تصادفی هستند. اما در رویکرد بیزین علاوه بر داده‌ها پارامترها هم متغیر تصادفی هستن و ما باید برای اون‌ها هم یک توزیع با پارامتر نامعلوم تعیین کنیم. رویکرد بسامدگرا ( Frequentist Probability )در رویکرد بسامد گرا فرض می‌کنیم که داده‌ها از یک توزیع احتمال خاص پیروی می‌کنند. پس فرآیند یادگیری شامل پیدا کردن مقدار درست پارامتر‌های اون توزیع خاصه. یعنی ما به دنبال مقداری هستیم که این تابع رو ماکزیموم کنه:تخمین بیشینه بخت (Maximum Likelihood Estimation).توضیح این فرمول هم خیلی ساده است. ما در رویکرد بسامد گرا هستیم و داده‌ها همه کاره هستند. پس مدل ما باید به داده های دیده شده بیشترین احتمال رو نسبت بده. به همین راحتی!خوب حالا برای این که بشه فرمول بالا رو مسائل یادگیری با نظارت (Supervised Learning) هم استفاده کرد. اون رو یه خرده دست کاری می‌کنیم:تخمین بیشینه بخت به صورت شرطی.توی این فرمول هم داده‌ها حرف اول و آخر رو می‌زنن. ما باید پارامتر تتا رو طوری پیدا کنیم که احتمال وقوع مجموعه داده‌های خروجی به شرط وقوع مجموعه داده‌های ورودی بیشینه بشه.رویکرد بیزین ( Bayesian Probability )در رویکرد بیزین، مداخله‌ی دانش پیشین بیشتر می‌شه. همون طور که قبلا هم گفته شد این مداخله به این شکله که ما در رویکرد بیزین، پارامتر مدل رو یه متغیر تصادفی دارای یک توزیع خاص در نظر می‌گیریم. در فرمول ML احتمال برای تتا بی معنا است. اما در فرمول MAP این طور نیست. توی این فرمول یه نکته‌ی جالب وجود داره این که خیلی روشن و واضح دستکاری که مد نظرمون بود انجام شده. قسمت سبز رنگ یادگاری از فرمول‌ قبلیه و قسمت قرمز رنگ تاکید می‌کنه که تتا یه متغیر تصادفیه که در چارچوب یه توزیع احتمال مقدار می‌گیره. تتای خوب تتایی هست که هم داده‌ها اون رو تایید کنن و هم ما!جدال ذهن و چشم و تنظیم (Regularization)تنظیم، روالیه که در همه‌ی مدل های یادگیری ماشین می‌تونه حضور داشته باشه. مثلا در شبکه‌های عصبی، ما معمولا مقدار نرم همه‌ی وزن‌ها رو به تابع هزینه‌اضافه می‌کنیم. واقعا چرا؟ این دقیقا تزریق دانش پیشین به مدله. ما از قبل می دونیم که اگه مدل بخواد روی یه دیتای خاص دچار بیش‌برازش (overfit) نشه باید پارامترها مقادیر خیلی بزرگی نداشته باشن! این یه دانش پیشینه. که ما معمولا به راحتی اون رو به سیستم تزریق می‌کنیم.چه وقت تزریق دانش پیشین مفیده؟برای پاسخ دادن به این سوال باید اول به این سوال پاسخ بدیم که واقعا ظرفیت مدل چه قدره؟ به قول معروف خودش چه‌قدر شعورش میرسه. معمولا برای پیدا کردن توانایی مدل از تکنیک تفکیک داده‌ها به دومجموعه‌ی آموزش و ارزیابی استفاده می‌کنیم. مفاهیم بیش‌برازش و کم‌برازش (underfit) در این جا معنای واضح تری پیدا می‌کنن. دانش پیشین از هر دوی اون ها میتونه جلوگیری کنه. در جایی که داده‌ها به قدر کافی وجود ندارن میشه با تزریق قوانین پیشین به مدل کمک کرد. و در جایی که مدل دچار بیش‌برازش شده می‌شه با قوانین محدود کننده به قدرت تعمیم مدل یاری رسوند.اما واقعا پاسخ کامل به این پرسش به وسعت تمام دانش یادگیری ماشینه و حتی به وسعت تمام هوش مصنوعی. اساسا مهم ترین محور تلاش‌ها و پیشرفت‌ها در زمینه‌ی هوش مصنوعی و یادگیری ماشین در مسیر کاهش تاثیر دانش پیشین در مدل‌های هوشمنده. یعنی همه دوست دارن که یه چیزی بسازن که بشه ولش کرد به امون خدا و اون خودش همه‌چیزو بفهمه و یاد بگیره. اصلا خودمختاری یعنی تاثیر هر چه کم‌تر دانش پیشین و این از ارکان اساسی یا بهتره بگم مهم ترین رکن هوشمندیه. توی کتاب معروف AIMA می‌خونیم:To the extent that an agent relies on the prior knowledge of its designer rather than on its own percepts, we say that the agent lacks autonomy. (AIMA ed3 p.39)به میزانی که یک عامل به جای تکیه بر ادراک خودش، بر دانش پیشین طراحش متکی باشد می‌گوییم او فاقد خودمختاری است.کلام آخراگر همای سعادت بر شانه‌های این حقیر نشسته و شما مطالب قبلی من رو مطالعه کردید باید خدمتتون عرض کنم که من این مطلب رو سعی کردم با رویکرد بالا به پایین بنویسم. هدف از نگارش این مطلب تنها اشتراک دانش و بهره مندی از نظرات شما بوده و ارزش دیگری ندارد‍! چنانچه احساس کردید این متن اون طور که باید وشاید نظر شما رو جلب نمی‌کنه دعوت می‌کنم یک بار دیگه این مطلب رو از اول مرور کنید البته ترجیحا بعد از مطالعه پست زیر: https://virgool.io/@moheb/%D8%A2%D9%88%D9%86%DA%AF-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-ke0uokjnk1pg ممنونم</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Tue, 18 Dec 2018 00:54:35 +0330</pubDate>
            </item>
                    <item>
                <title>چرا به یادگیری عمیق می گوییم &quot;عمیق&quot; ؟</title>
                <link>https://virgool.io/@moheb/%DA%86%D8%B1%D8%A7-%D8%A8%D9%87-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D9%85%DB%8C-%DA%AF%D9%88%DB%8C%DB%8C%D9%85-%D8%B9%D9%85%DB%8C%D9%82-egdrperxznjj</link>
                <description>علت نامگذاری یادگیری عمیق چیست؟چند ساله که بحث یادگیری عمیق در ایران به شدت فراگیر شده و حتی افرادی که قبل از این میونه ی خوبی با یادگیری ماشین نداشتند رو هم به خودش جلب کرده. نتایجی که یادگیری عمیق به دست می ده نتایج بسیار حیرت آوری هستند. به طوری که در برخی موارد، علت به وجود اومدن این نتایج  هنوز به طور دقیق مشخص نیست.(این پست به همین نکته در شبکه های بازگشتی پرداخته).برای توصیف علت به وجود اومدن این نتایج شگفت انگیز تلاش های نظری و عملی زیادی انجام شده. در حوزه ی عملی بسیاری از افراد سعی کردن با مصور سازی لایه های میانی شبکه های عصبی یا مصور سازی اکتیویشن نورون ها  تا حدودی این کار سخت رو انجام بدن. از طرف دیگه افرادی سعی کردن با استفاده از تفسیر مبتنی بر جبر خطی و استفاده از توپولوژی -که مغز جبر خطی و تبدیلات فضایی هست- کارکرد این شبکه ها رو تفسیرکنن. این پست واقعا عالی به صورت مصور این کار رو به خوبی انجام داده. اما واقعا چه چیزی سد راه فهم کامل مکانیزم یادگیری عمیق میشه؟ به عقیده من یکی از چیز هایی که باید قبل از هر تلاشی در این زمینه صورت بگیره اینه که مرز بین عمیق بودن و عمیق نبودن روشن بشه.به طور کلی دو تعریف اصلی برای یادگیری عمیق وجود داره. تعریف اول دارای جامعیت کم تر اما خوش فهم تر،جذاب تر و کاربردی تره و میشه گفت رویکرد پایین به بالا داره. در مقابل، تعریف دوم جامعیت بسیاری داره تا جایی که میتونه خیلی از روش های یادگیری فعلی رو هم عمیق کنه! اما شاید شدت کاربردی بودنش کم تر باشه. روش دوم به شدت رویکرد بالا به پایین داره. تعریف سومی هم هست که کمی گنگ به نظر میرسه اما در این نوشته سعی کردم توضیحش بدم. البته خیلی سخته چیزی که خودت نفهمیدی رو برای کسی توضیح بدی!پیشنهاد می کنم قبل از مطالعه ی نوشته فعلی، این پست رو بخونید. https://virgool.io/@mh.bashari/%D8%A2%D9%88%D9%86%DA%AF-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-ke0uokjnk1pg تعریف اول: بازنمایی های پی در پی اشکالی که این تعریف داره اینه که تنها در مورد شبکه عصبی انطباق کامل داره. دلیلش هم اینه که ایجاد کننده ی -یا ایجاد کنندگان- این تعریف بیشتر روی شبکه عصبی کار کردن و طبیعتا سعی کردن از مدل های عمیق مبتنی بر شبکه عصبی به یک تعریف جامع از یادگیری عمیق برسن و همون طور که گفتم یه جورایی روند شکل گیریش پایین به بالا بوده. یاشوا بنژیو (Yoshua Bengio) در این ویدیو یک توصیف خیلی روشنی از تعریف اول ارایه میده. https://www.aparat.com/v/30RwQ طبق این تعریف، زمانی به یک تکنیک یادگیری ماشین ، صفت &quot;عمیق&quot; رو اضافه میکنیم که اون تکنیک قابلیت ایجاد بازنمایی های متعدد و لایه لایه رو داشته باشه. همین نکته نشون میده که این تعریف بیشتر به درد شبکه عصبی میخوره چون اساسا مفهومی به اسم لایه در سایر تکنیک های یادگیری ماشین موضوعیت چندانی نداره.تصویر زیر یه مثال عینی از به وجود اومدن بازنمایی ها در شبکه عصبی رو نشون میده. البته همیشه بازنمایی ها برای انسان قابل درک نیستن. مهم اینه که نتیجه ی نهایی اون ها درست باشه. اما به هر حال طبق تعریف اول ما مطمئن هستیم در لایه های مختلف شبکه عصبی عمیق این بازنمایی ها وجود دارن.یک مثال از یادگیری بازنمایی به شکل لایه لایه. در هر سطح بازنمایی بهتر و سطح بالا تر از تصویر ساخته میشه.تعریف دوم: طولانی بودن مسیر تخصیص اعتبارحتما با آقای یورگن اشمیدهابر ( Jürgen Schmidhuber ) آشنا هستید. اون یکی از چهار نفر مشهور یادگیری عمیقه. اما با بقیه تفاوت های جدی داره. تفاوت جدی اون با بقیه اینه که سعی کرده نگاه بالا به پایین خودشو حفط کنه. ایشون مقاله ای  در سال ۲۰۱۴ منتشر کرده و در اون تاریخچه، چیستی و شمای کلی از وضعیت یادگیری عمیق رو ارائه کرده.(لینک مقاله در arxiv)آقای اشمید هابر در مقاله برای توضیح چیستی یادگیری عمیق به یک مفهوم بسیار قدیمی اشاره میکنه: مسیر تخصیص اعتبار (Credit Assignment Path: CAP)قبل ازادامه مطلب اجازه بدید یه نکته خنده دار بگم. مفهوم CAP توسط ماروین مینسکی(در سال ۱۹۶۱) پایه گذاری شده. این آقا یکی از کسانیه که با کتاب معروفش ده دوازده سال شبکه عصبی رو ناک اوت کرد! حالا همین مفهوم داره برای توضیح مفهومی استفاده میشه که شبکه عصبی بهترین وسیله برای نشون دادن قدرتشه!مسیر تخصیص اعتبار:برای این که یه ماشین بتونه چیزی یاد بگیره باید دو شرط اساسی درون اون وجود داشته باشه.  یک: باید یه چیزی درونش وجود داشته باشه تا با تغییر اون عملکردش تغییر کنه. مثلا یه تیرآهن هرگز نمیتونه چیزی یاد بگیره! چون هیچ جزئی نداره که بشه تغییرش داد و رفتارش رو عوض کرد. دو: الگوریتمی برای اصلاح ماشینی اون اجزاء وجود داشته باشه.مثلا در شبکه عصبی، ما کلی وزن داریم که با تغییر اون ها رفتار سیستم عوض میشه. از طرف دیگه الگوریتمی به نام گرادیان نزولی (=شیو نزولی) هم وجود داره که متناسب با داده ی آموزش، اون قدر وزن ها رو ذره ذره تغییر میده تا به نقطه ایده آل برسه.خوب حالا اگه عملکرد این اجزاء ، به هم وابسته باشن یه مسیر تولید میشه. مسیری که در اون موارد زیر توصیف شده: ۱) اجزاء موثر ۲) چگونگی وابستگی اون ها به همدیگه  ۳) میزان نقش اون ها در عملکرد ماشیننکته ی جالب اینه که ماشین کم ترین نقش رو موارد یک و دو ایفا می کنه و در عوض در مورد سوم انسان تقریبا کار خاصی انجام نمیده. در حقیقت تفاوت بین مدل های مختلف یادگیری ماشین تفاوت در انجام موارد یک و دو هست و مورد سوم رو ماشین انجام می ده.در یک جمله میشه گفت که مفهوم یادگیری در یادگیری ماشین همون تخصیص اعتبار هست.خوب حالا اگه این مسیر طولانی باشه (مثلا بزرگ تر از ۱۰) میشه گفت که اون الگوریتم، یه الگوریتم عمیقه.مثلا توی یه پرسپترون چهار لایه طول مسیر تخصیص اعتبار ۳ هست.این مسیر شامل ۱) وزن های انتقال از لایه ورودی به به لایه مخفی اول ۲) وزن های انتقال از لایه مخفی اول به لایه مخفی دوم و ۳) وزن های انتقال از لایه مخفی دوم به لایه خروجی میشه. پس حداکثر مسیر وابستگی بین متغیرها(=پارامترها)ی مدل  عدد ۳ هست. پرسپترون چهار لایهتعریف دیگر: عمیق بودن سلسله مراتب مفاهیماین تعریف در کتاب معروف یادگیری عمیق و در همون صفحات اول مطرح شده. بیان کتاب کمی مبهم و غیر دقیق به نظر میرسه. تمرکز این تعریف بر روی نقش القای مفاهیم به کامپیوتره. میشه به جای کلمه القا از کلماتی مثل تزریق، ورود و حتی یاد دادن مفاهیم استفاده کرد. در گذشته بیشتر بار هوش مصنوعی بر روی دوش طراح هوش مصنوعی بود. زمانی که سیستم های قانون محور و سیستم های خبره ی دارای موتور استنتاج، دستاورد های غرور آمیز هوش مصنوعی بود. در اون زمان، این طراح هوش مصنوعی بود که باید مجموعه ی عظیمی از قوانین و حقایق رو به ماشین میداد و ماشین تنها زحمت اجرای الگوریتم استنتاج رو به عهده داشت.حالا سوال این جا است که مفاهیم چه جوری میتونن یه سلسله مراتب ایجاد کنن؟ وقتی از سلسله مراتب حرف میزنیم یعنی داریم از یه درخت حرف میزنیم. درختی که مفاهیم سطح پایین تر ذیل مفاهیم سطح بالاتر قرار دارن. منظور از مفاهیم حقایقی هست که ماشین از داده ها بیرون میکشه. پس ماشین باید یک سری حقایق سطح پایین رو از دیتا استخراج کنه و از روی اون مفهوم به مفاهیم سطح بالا تر و قوانین عمومی تر برسه.اگه مفهوم رو خروجی یک بخش از مدل یادگیری ماشین فرض کنیم. این تعریف بیشتر شبیه به تعریف اول (بازنمایی های پی در پی) میشه. اما اگه مفهوم رو پارامترهای مدل فرض کنیم بیشتر شبیه تعریف دوم میشه. به هر حال تعریف جالبیه و میشه خیلی در موردش صحبت کرد.۱) درخت تصمیم عمیق نیست؟؟؟؟شاید این ذهنیت برای شما هم پیش اومده باشه که درخت تصمیم با این عمق زیادش!! حتما یه مدل یادگیری عمیقه و  بیچاره تا الان گمنام بوده. اما طبق هیچ کدوم ار تعاریف مطرح شده، درخت تصمیم، عمیق نیست :(طبق تعریف اول ما نیاز به بازنمایی های پی در پی از داده احتیاج داریم. اما چنین چیزی توی درخت تصمیم وجود نداره .طبق تعریف دوم هم ما نیاز به مسیر تخصیص اعتبار داریم. یعنی یک وابستگی بین پارامترهای مدل و نه ویژگی های داده. و میبینیم که درخت تصمیم عملا چنین چیزی نداره. در واقع درخت تصمیم ساختار خودش رو یادگیری میکنه و نه ارتباط بین پارامترهاشو.یک نمونه درخت تصمیم۲) شبیه سازی یادگیری عمیق با یادگیری سطحی ممکنه؟طبق تعریف اول میشه تا حد قابل قبولی یادگیری عمیق رو با روش های معمولی شبیه سازی کرد. یه موضوع جالب در مورد همه ی الگوریتم های یادگیری ماشین وجود داره:تصمیم های غلط  ماشین یادگیرنده هم الگو دارن.خیلی جالبه نه؟ شاید این موضوع جالب باشه اما چندان عجیب نیست. ماشینی که توانایی یادگیری از روی داده رو داره درحقیقت توانایی بازنمایی و یا تشخیص یک الگو رو داره. خطای ماشین ناشی از تفاوت الگوی واقعی با الگوی یادگیری شده به وسیله ماشینه. پس ماشین همواره زندانی در یک الگوی خاصه و فقط میتونه الگوی خودشو تغییر بده. اما هیچ وقت نمیتونه بدون الگو رفتار کنه. اینم یه جور جبر و اختیار همزمانه!! در نتیجه میبینیم که جمله بالا چندان عجیب نیست.حالا با استفاده از همین قاعده میشه یادگیری عمیق رو با یادگیری سطحی شبیه سازی کرد. کافیه شما بعد از خروجی گرفتن از ماشین یادگیری شماره یک خروجی های اون رو به عنوان ویژگی به ماشین دو بدید. به همین راحتی شما تونستید یادگیری عمیق راه بندازید!!البته اشکال این روش اینه که بازنمایی داخلی که همون خروجی ماشین قبل هست به وسیله ماشین تولید نشده و این ممکنه کار رو خراب کنه. اگه این بازنمایی به وسیله خود ماشین تولید بشه قطعا متناسب با مساله و دیتا تغییراتی خواهد داشت. به هر حال با این روش قرار نیست به همه ی قدرت یادگیری عمیق دست پیدا کنیم.۳) یادگیری عمیق محدود به شبکه عصبی نیستهمچین ادعایی طبق تعریف دوم اصلا عجیب و غریب به نظر نمیاد. مثلا توی این مقاله: https://arxiv.org/abs/1702.08835v2 این مقاله سعی داره یه راه حل جایگزین برای یادگیری عمیق ارائه بده. به نظر می رسه نویسنده های مقاله بیشتر پیرو تعریف اول از یادگیری عمیق بودن. اونا به جای قرار دادن لایه ایِ پرسپترون ها، اِسنمبِلی از درخت ها (همون جنگل) رو قرار دادن. به همین راحتی! حتی این روش قابلیت ایجاد بازنمایی های داخلی رو هم داره!از توجهتون ممنونم</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Fri, 03 Aug 2018 19:10:04 +0430</pubDate>
            </item>
                    <item>
                <title>آغاز کار با تنسورفلو</title>
                <link>https://virgool.io/@moheb/%D8%A2%D8%BA%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D9%86%D8%B3%D9%88%D8%B1%D9%81%D9%84%D9%88-a6pg8rjdguax</link>
                <description>این پست رو حدود دو سال پیش در بلاگ منتشر کردم. به دلیل انسجام بهتر مطالبم در ویرگول اون رو دوباره منتشر می کنم (با ویرایشی مختصر). امیدوارم که مفید باشه.مساله ای که معمولا در استفاده از تنسورفلو و حتی تیانو و تورچ وجود دارد این است که ما نمی دانیم این دو دقیقا دقیقا چه هستند! مساله ای که معمولا مارا مجبور به استفاده ار ابزارهای سطح بالاتر مثل کراس می کند. این کتابخانه ها خودشان را به عنوان ابزارهایی برای پیاده سازی الگوریتم های یادگیری عمیق معرفی کردند. اما درواقع مفاهیم پشت صحنه این دو ابزار مفاهیمی مستقل از یادگیری عمیق است. مفهومی که در عین سادگی، پیچیده ترین ساختارهای محاسباتی را برای ما تولید می کند. گراف محاسبه (Calculation Graph) مفهوم پایه برای این دو ابزار قدرتمند است. گراف محاسبه شبیه درخت های پیشوندی و پسوندی (برای عملیات ریاضی) است با این تفاوت که الزاما ساختار به صورت درخت نیست. مثلا عبارت های زیر در نظر بگیرید:‍‍c = a + b
d = b + 1
e = c * گراف محاسباتی برای این عبارات به شکل زیر است:اگر مقدار a برابر ۲ و مقدار b برابر ۱ باشد گراف محاسباتی به صورت زیر در می آید که مقدار عبارت نهایی برابر ۶ می شود.تمام اجزای این گراف برای تنسورفلو به طور کامل قابل بیان است. تا جایی که می تواند عملیات بهینه سازی مبتنی بر مشتق (مثل گرادیان نزولی) را بر روی یک گراف انجام دهد. به طور کلی مشتق گیری برروی گراف های محاسباتی از قوانین ساده ای پیروی می کند. برای شکل بالا اعمال این قواعد به شکل زیر خواهد شد:در شکل زیر هم مسیر مشتق گیری بر روی گراف محاسباتی نشان داده شده است:به طور کلی دو قانون ساده برای مشتق گیری بر روی گراف محاسباتی وجود دارد. ۱- مشتق های موازی با هم جمع میشوند۲- مشتق های سری در هم ضرب می شوند.مثلا در گراف محاسبه زیر:مشتق به صورت زیر در می آید:تیانو و تنسورفلو و تورچ از همین دو اصل ساده برای بهینه سازی و آموزش شبکه عصبی استفاده می کنند. در حقیقت محاسبه ی مشتق توابع تودرتو هنر اصلی تنسورفلو و تیانو است. برای محاسبه دو تابع تودرتوی سهمی در هر نقطه ی دلخواه تکه کد زیر کافی است.import tensorflow as tf

def get_gradient(fx):
    opt = tf.train.GradientDescentOptimizer(0.1)
    grads = opt.compute_gradients(fx)
    sess = tf.Session()
    sess.run(tf.initialize_all_variables())
    grad_vals = sess.run([grad[0] for grad in grads])
    return grad_vals
    
point = 3.0
x = tf.Variable(float(point))
g_x = x * x
fog_x = g_x * g_x
print(get_gradient(fog_x))  # [108.0]البته به طور کلی نیازی به محاسبه ی مشتق و محاسبه ی دستی گرادیان نزولی نیست. چون کلاس هایی مثل  GradientDescentOptimizer و AdamOptimizer و... عملیات بهینه سازی را برای ما انجام می دهند. برای شروع با یکی از این بهینه سازها یک مساله ی رگرسیون خطی را حل میکنیم که نمودار داده ها و تابع تولید کننده ی آن به صورت زیر است:
def data_maker(num=80): 
    X = np.arange(0, num, dtype=np.float32) 
    Y = np.float32(np.ceil(5 * (np.sin(X) + X / 5))) 
    return X, Yکد کامل را میتوانید از گیت هاب دریافت کنید.ما در تابع fit عملیات یادگیری را انجام می دهیم.def fit(self):
    x = tf.placeholder(&quot;float&quot;)
    y = tf.placeholder(&quot;float&quot;)
    a = tf.Variable(1.0, name=&quot;weight&quot;)
    b = tf.Variable(1.0, name=&quot;bias&quot;)
    
    pred = tf.mul(x, a) + b
    cost = tf.reduce_mean(tf.abs(pred - y))
    optimizer = tf.train.GradientDescentOptimizer(self.learning_rate).minimize(cost)
    init = tf.initialize_all_variables()

    with tf.Session() as sess:
        sess.run(init)
        for epoch in range(self.training_epochs):
            for i, out in zip(self.train_X, self.train_Y):
                sess.run(optimizer, feed_dict={x: i, y: out})
                print(&quot;Epoch:&quot;, &#039;%04d&#039; % (epoch + 1), &quot;cost=&quot;, &quot;W=&quot;, sess.run(a), &quot;b=&quot;, sess.run(b))
        print(&quot;Optimization Finished!&quot;)
        training_cost = sess.run(cost, feed_dict={x: self.train_X, y: self.train_Y})
        print(&quot;Training cost=&quot;, training_cost, &quot;a=&quot;, sess.run(a), &quot;b=&quot;, sess.run(b), &#039;\n&#039;)
        return sess.run(a), sess.run(b)در آینده از انواع بهینه ساز ها بیشتر سخن خواهم گفت.سپاس..</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Tue, 26 Jun 2018 18:22:52 +0430</pubDate>
            </item>
                    <item>
                <title>آیا واقعا یادگیری عمیق به داده زیاد احتیاج دارد؟</title>
                <link>https://virgool.io/@moheb/%D8%A2%DB%8C%D8%A7-%D9%88%D8%A7%D9%82%D8%B9%D8%A7-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D8%A8%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B2%DB%8C%D8%A7%D8%AF-%D8%A7%D8%AD%D8%AA%DB%8C%D8%A7%D8%AC-%D8%AF%D8%A7%D8%B1%D8%AF-lteyibkvloyf</link>
                <description>امروزه این یه جمله مشهور و رایجه:یادگیری عمیق وقتی به درد می خوره که دیتای زیادی داشته باشی!این جمله ی نه به کلی درست و نه به کلی غلط نیاز به کمی توضیح داره تا دقیقا معلوم بشه چه قدر درسته و چه قدر غلط!داده ی برچسب خورده و داده ی بدون برچسبدر یادگیری ماشین، یادگیری با ناظر (supervised) و یادگیری بدون ناظر (unsupervised) دو دسته بندی اصلی به حساب میان. داده هایی که برای این دو روش به کار میرن هم تفاوت جدی باهم دارن. داده های مورد استفاده از الگوریتم های باناظر کاملا برچسب خورده ( labeled ) هستن. یعنی به ازای هر عضو از داده ها یک یا چند برچسب مشخص از کلاس ها وجود داره که کار ماشین، یادگیری چگونگی تناظر بین داده ها و برچسب های متناظر اون هاست.اما در موج جدید یادگیری عمیق یک اتفاق مهم رخ داده. در حقیقت یکی از دلایل اوج گیری دوباره یادگیری عمیق همینه. این موضوع جذاب و به درد به خور اسمش هست &quot;representation learning&quot; یا اگه درست ترجمه کنم &quot;یادگیری بازنمایی&quot;. به طور خلاصه یادگیری بازنمایی یعنی این که شما یه سری داده ی برچسب نخورده رو به ماشین میدید و ماشین صرفا با مقایسه و کنار هم گذاشتن داده ها چیزهای زیادی رو از اون ها یاد میگیره. درسته که اون چیزها -شاید- به طور مستقیم قابل استفاده نباشند اما قطعا به عنوان یه ابزار کمکی و واسط محشرن!الگوریتم Word2vecمثلا الگوریتم معروف گوگل با گرفتن متن خام حجیم (مثلا چند گیگابایت متن خام) کلمات رو تبدیل به یه سری بردار میکنه. این بردارها بردارهای معمولی نیستن. به طوری که وقتی شما تفاضل برداری تهران و ایران رو با ترکیه جمع می کنید یه بردار جدید تولید میشه. خوب تا این جا اتفاق خاصی نیفتاده!!! اتفاق خاص این جا است که وقتی نزدیک ترین بردار رو از بردارهای کلمات موجود در متن بیرون می کشیم میبینیم که این کلمه، کلمه ای نیست جز آنکارا. یعنی این بردار تونسته به راحتی رابطه ی بین کلمات تهران و ایران رو بفهمه و اون را با ترکیه تطبیق بده و به آنکارا برسهرابطه ی بین کشورها و پایتخت ها. این بردارها کاملا بدون ناظر توسط ماشین یادگیری شدن.خوب حالا بریم سر سوال اصلی: آیا واقعا یادگیری عمیق به داده ی زیاد احتیاج داره؟خوب اگر برای جمع آوری داده های بدون برچسب زحمت زیادی نکشیم (که معمولا همین طوره) باید سوال رو این طوری بازنویسی کرد.آیا یادگیری عمیق به داده ی برچسب خورده ی زیادی احتیاج دارد؟پاسخ سوال بسیار ساده است. اگر شما می تونید یک روش یادگیری بازنمایی برای مسالتون پیدا کنید پاسخ خیر هست. اما اگر به هر دلیلی قادر نیستید که یک روش یادگیری بازنمایی رو به کار بگیرید پاسخ بله می باشد!البته این به این معنا نیست که حتما باید یادگیری بازنمایی در یک فاز جداگانه انجام بگیره. بنابراین شاید بهتر باشه جمله بالا رو این طوری بازنویسی کرد.اگر میتوانید از داده های برچسب نخورده استفاده کنید به داده ی برچسب خورده ی زیادی احتیاج ندارید.ممنون از توجهتون</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Sat, 16 Jun 2018 12:59:06 +0430</pubDate>
            </item>
                    <item>
                <title>آونگ یادگیری</title>
                <link>https://virgool.io/@moheb/%D8%A2%D9%88%D9%86%DA%AF-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-ke0uokjnk1pg</link>
                <description>آموختن در دنیای امروز خیلی مساله مهمی به حساب میاد. یه جمله ای هست که میگه &quot;بی سواد کسیه که نتونه چیز جدید یاد بگیره&quot;. نمی دونم که این جمله ی معروفه یا نه، اما مطمئن هستم کسایی مثل من که در دنیای پرسرعت کامپیوتر و آی تی نقشی دارند -کوچیک یا بزرگ فرقی نمی کنه-  این جمله رو ۱۰۰ درصد می پذیرن.آدمای شبیه من می دونن که اگه اطلاعاتشون رو به روز نکنن و با فناوری های جدید دنیا همراه نشن قطعا با کارت قرمز از زمین بازی اخراج میشن با به لیگ دسته پایین تر سقوط میکنن. بنابراین اهمیت یادگیری چیزی نیست که بخوام زیاد در موردش صحبت کنم. من میخوام توی این پست در مورد خود یادگیری صحبت کنم و چالش ها و تجربیات خودم رو بیان کنم.مهران مدیری: بعد از پرسیدن اجزای مختلف کابین خلبان با تکه کلام &quot;این چیه&quot;، پرسید: حالا اینا کلا چین؟!!! این یه نمونه یادگیری از پایین به بالا است :)بحث من در مورد شیوه ی فهمیدن مطالب توسط آدم ها است. شیوه ی فهمیدن مطالب توسط آدم ها خیلی متفاوته. بعضی ها موضوعات رو از بالا به پایین میفهمن. یعنی قبل از این که یه موضوع جدید رو برای فهمیدن و مطالعه کردن شروع کنن، باید سرفصل ها ی اصلی اون موضوع رو بفهمن. مثلا قبل از این که کتاب فلسفه رو باز کنن باید یه تصویر کلی از اون کتاب بهشون گفته بشه. دیده شده که بعضی از این افراد ساعت ها در حال مطالعه فهرست کتاب بودند. اما سرانجام به دلیل این که نتونستن خط و ربط فصل های متفاوت کتاب رو در بیارن بی خیال کتاب شدن. درحالی که اگه چند صفحه اول کتاب رو میخوندن به راحتی متونستن یه نقشه کامل از مطالب کتاب پیدا کنن.عده ای هم دقیقا برعکس هستن یعنی به محض این که کتاب رو بر میدارن چنان پر سرعت جلو میرن که وقتی سر از کتاب بیرون میارن دقیقا شبیه کسایی هستن که از یه بیهوشی چند ساعته بیرون اومدن. صد البته این افراد معمولا آماده ی سعی و خطا هستن و خیلی وقتا هم پیش میاد که خروجی بسیار خوب و مطلوبی به دست میارن اما از ترسیم گام بعدی عاجز هستن. چون نمی دونن از کجا به این جا رسیده اند و آمدنشان بهر چه بود!! این افراد اصطلاحا روش پایین به بالا رو برای یادگیری انتخاب کردن.البته هیچ انسانی به شکل صد درصدی عضو هیچ کدوم از مجموعه های بالا نیست. هر انسانی از هر دوی این حالات بهره منده ولی ممکنه به دلایل مختلف به شدت به سمت یکی از اون ها متمایل بشه. به نظر من مهندس ایده آل (و به طور مشخص مهندس کامپیوتر ایده آل) کسیه که بتونه بین این دو رویکرد تعادل ایجاد کنه. به نظرم بهترین روش برای یادگیری یه موضوع جدید توی دنیای تکنولوژی روش آونگ یادگیری هست. علت این که آونگ رو برای توصیف این روش انتخاب کردم اینه که آونگ  بعد ازمدتی می ایسته و باید یک نیروی خارجی انرژی مورد نیاز رو برای ادامه حرکت اون ایجاد کنه.این انرژی میتونه از هر کدام از دو سمت آونگ به اون وارد بشه. آونگ یادگیری بین دو نیروی بالا به پایین و پایین به بالا در نوسانه. نیروی نظری به کاربرد بهتر کمک میکنه و تجربیات عملی به درک بهتر نظریه ها. من در این توصیف، اعتقاد دارم کسایی که اصلا به تئوری و نگاه از بالا به پایین نمی پردازن قطعا در عمل موفق نخواهند بود. حتی اگر در مواردی دسته اول به موفقیت هایی دست پیداکنن هیچ تضمینی برای بهبود و گسترش اون موفقیت وجود نداره. در حقیقت این افراد توان طراحی یک نقشه راه قابل انجام را کم تر دارند. تاکید می کنم طراحی نقشه راه قابل انجام! نه جست و جو و گرته برداری از روی نقشه راه دیگران. از اون طرف؛ کسایی که اهل عمل نیستند در واقع چیز ها رو نمی فهمن و تنها فکر میکنند که دارن چیز ها رو میفهمن. اصلا در دنیای مهندسی فهمیدن نظریه یعنی فهمیدن کاربرد نظریه یا به عبارت دیگه به دست آوردن توان به کار گیری نظریه. نه قصه گفتن و قصه شنیدن. نکته ی جالب اینه که این دسته افراد هم توان تدوین یک نقشه را شدنی را ندارند!نکته جالب توجه در مورد این دو گروه اینه که گروه اول توان تولید محصولی که واقعا کار کنه رو دارن-هرچند ممکنه خیلی اتکا پذیر نباشه- اما گروه دوم حتی توان این کار رو هم ندارن. شاید به همین دلیله که عمده ی بازار کار کامپیوتر در تصرف گروه اوله :(القصه! مهندس خوب کسیه که انتزاعی ترین مفاهیم رو بتونه به سطح کاربرد بیاره. به قول فیلسوف ها: تبدیل معقول به محسوس رو به خوبی انجام بده. در حقیقت تفاوت عمده دانشمند کامپیوتر با مهندس کامپیوتر در همین قدرت تبدیله.در پایان آرزو میکنم تمام مهندسان کشور، هم دانشمند حوزه کاری خودشون باشند و هم بتونن اون رو به کاربرد بیارن. امیدوارم هم صنعتگران و تولیدکنندگان و هم دانشگاهیان به هر دو سمت این آونگ به شکل متعادل توجه داشته کنن تا به ایجاد واقعی و ایده آل اقتصاد دانش بنیان دست پیدا کنیم.پی نوشت: من جزو هیچ کدوم از دو دسته نیستم و فعلا در مرحله مقدماتی هستم! این مربوط به مقایسه بزرگانه!</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Wed, 25 Apr 2018 20:36:42 +0430</pubDate>
            </item>
                    <item>
                <title>کتاب: گفت و شنودهایی در ریاضیات</title>
                <link>https://virgool.io/@moheb/%DA%A9%D8%AA%D8%A7%D8%A8-%DA%AF%D9%81%D8%AA-%D9%88-%D8%B4%D9%86%D9%88%D8%AF%D9%87%D8%A7%DB%8C%DB%8C-%D8%AF%D8%B1-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C%D8%A7%D8%AA-upxyvonx3knk</link>
                <description>ما بچه هامونم دارن مادر و پدر میشن میشن ولی هنوز نفهمیدیم انتگرال رو برای چی خوندیم! این جمله طنز آمیز حکایت وضعیت آموزش و به خصوص آموزش ریاضی در کشور ما است. خیلی کم پیش میاد که معلم یا استاد در مورد چرایی مباحث اون جلسه صحبتی بکنه. خیلی کم پیش میاد که در ابتدا، دانش آموز و دانشجو تشنه ی مطلبی بشن و بعد مطلب بهشون ارایه بشه. انسان هم که تا تشنه نشه، چیزی رو دنبال نمی کنه. و مطلب جالب تر در مورد علم اینه که حتی اگر دقیقا همون کارای وقت تشنگی رو انجام بده باز هم خبری فهم عمیق نیست. انگار مغز فقط در حالت تشنگیه که آموزش میبینه. در چنین حالتی تنها تشنگی نمره است که باقی میمونه. پس کاملا طبیعیه که تشنگان نمره در صدر نخبگان جامعه قرار بگیرند. عده ی قلیلی هم که تونستند به صورت خودجوش، در خودشون تشنگی ایجاد کنن این قدر جلو میفتن که مدیران سیراب! از آموزش و پژوهش حالشونو به هم میزنن. بگذریم...در این وضعیت به هم ریخته، قصه آموزش ریاضی هم مستثنی نشده و ما همیشه پیش از اون (و حتی پس از اون)که فرمول ها رو ذهنمون انبار کنیم از فهمیدن چرایی آموزش اون بحث محروم بودیم. هیچ وقت تلخی این جمله از استاد معادلات دیفرانسیلم یادم نمیره که گفت &quot;شما که مهندس هستید و نیازی به اثبات فرمول ها نیست!&quot;. این شاید جزو ده لحظه ی تلخ عمرم تا به امروز باشه. به هرحال کتابی که می خوام معرفی کنم برای اونایی هست که میخوان توی ریاضی سیر و سلوک کنن و به ریاضی به عنوان یک رویکرد نگاه کنن نه به عنوان یه ابزار. توضیح بیشتری نمیدم و دعوت می کنم کتاب رو یه نفس بخونید. کتاب کم حجم در قالب سه داستان که همه یک مطلب رو بیان می کنن. امیدوارم از خوندن کتاب لذت ببرید. خواهش می کنم اگر کتابی مثل این سراغ دارید به من معرفی کنید.سپاسجلد کتابدریافت کتاب</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Mon, 16 Apr 2018 09:00:45 +0430</pubDate>
            </item>
                    <item>
                <title>یادگیری و یادگیری ماشین</title>
                <link>https://virgool.io/@moheb/learning-and-machine-learning-hcjtu5lwtnsl</link>
                <description>یادگیری ماشین به معنای یادگیری ماشین از روی داده­ ها است.یادگیری چه چیزی؟..این که ماشین چه چیزی را از داده­ ها می ­آموزد تنها به دسته بندی ماشین­های دارای قدرت یادگیری کمک می­کند. من در  این بخش نمی­ خواهم درباره­ ی این موضوع صحبت کنم. در این جا تنها و تنها می خواهم کمی درباره­ ی مفهوم یادگیری بحث کنم.یادگیری در ماشین و یادگیری در انسان دو مقوله ­ی بسیار شبیه به هم هستند. این شباهت اتفاقی نیست. دلیل این شباهت آن است که کسانی که مفاهیم یادگیری ماشین را پایه گذاری کرده­ اند خود انسان بوده ­اند و همواره نیم ­نگاهی به آن چه در درون انسان می­ گذرد داشته­ اند البته بعضی به صورت خودآگاه و بعضی به صورت ناخودآگاه. بنا براین، ما در این بخش، انسان و نیز ماشین یادگیرنده را عامل یادگیرنده (learning agent)  می ­نامیم.یادگیری، کلیت­ بخشی و خودمختارییادگیری (learning) و کلیت ­بخشی (generalization) دو مفهوم کاملا به هم نزدیک و تقریبا دو نام متفاوت برای یک چیز اند. در گام اول وقتی عامل یادگیرنده با انبوهی از داده­ ها مواجه می­شود ابتدا به دنبال داده ­های مفید برای یادگیری می­گردد. مثلا انسان همواره با انبوهی از داده ­های ورودی از طریق حواس پنج گانه درگیر است. حتی ذخیره­ ی­ این داده ها برای رایانه ­های بسیار بزرگ غیر ممکن است. بنا براین مغز انسان در میان این انبوه داده ­ها همواره به دنبال داده ­های مفید است. مفید برای چه؟ مفید برای هدف یا اهدافی که در آن لحظه برای رسیدن به آن در تلاش است. البته این فرآیند بسیار پیچیده و مهم، هنوز به طور قابل قبولی در ماشین ­ها پیاده سازی نشده و طراح ماشین قبل از به کار گیری ماشین ساعت ها بر روی انتخاب و پالایش داده ­ها فکر و برنامه ­ریزی می ­کند. هرچند  با معرفی مکانیزم توجه (attention) ،گام هایی بسیار کوچک در این راه برداشته شده است.پس از این که عامل یادگیرنده داده­ های خود را دریافت کرد درگام دوم سعی می­ کند آن را درون خود بازنمایی (represent) کند. در این جا هم از  دست ماشین کار زیادی بر نمی­ آید و باز این طراح ماشین است که شیوه­ ی بازنمایی داده­ ها را مشخص می­کند. مثلا طراح ماشین ممکن است برای بازنمایی کلمات یک متن یکی از دو روش زیر را انتخاب کند:استخراج لیست کلمات منحصر به فرد درون متن و انتساب اعداد منحصر به فرد به آن ها و تبدیل متن به رشته ای از اعداداستخراج لیست کلمات منحصر به فرد درون متن و انتساب اعداد منحصر به فرد به آن ها و تبدیل متن به بردار وان هات (one-hot vector)یک نمونه بردار One hotماشین های یادگیرنده در گام سوم خودنمایی بیشتری دارند. یک ماشین یادگیرنده پس از آن که داده ­ها را دریافت و در درون خود بازنمایی کرد به دنبال کشف قواعد کلی از روی داده­ ها است. طیف وسیع الگوریتم­های یادگیری ماشین عمدتا در این گام قرار می­گیرند.در همین جا می توان یک تعریف ساده از یادگیری عمیق ارائه کرد. یادگیری عمیق یعنی توانایی بیشتر در کلیت بخشی و کشف قواعد کلی ­تر یا به عبارتی کشف قاعده­ ی قاعده ­ها. یک عامل یادگیرنده می­تواند به قواعدی که از داده ­ها و رابطه ­ی بین آن ها کشف کرده­ است مجددا فکر کند و قواعد سطح بالاتری استقرا کند. جالب است که ما در زندگی روزمره به افرادی که قواعد کلی­ تری از علوم را می­دانند یا به عبارتی اشراف بیشتری بر علوم دارند صفت دارای بینش عمیق را نسبت می­دهیم. در مقابل یادگیری عمیق ، یادگیری سطحی (shallow) قرار دارد. تصور کنید دانشجویی را که درس معادلات دیفرانسیل را با به هم پیوستن مشتی خرده تئوری می ­آموزد که تنها برای حل سؤالات امتحانی مفید است و دانشجویی که تمام اثبات ها و چرایی های روش های حل در معادلات دیفرانسیل را میداند. قطعا دومی بینش عمیق­ تری نسبت به موضوع دارد. پس جا دارد که ما یادگیری بهتر را یادگیری عمیق ­تر بنامیم ؛ یادگیری ­ای که حاصل آن عبارات جهان شمول تر و اتکاپذیر­تر است و باعث می­ شود که عامل یادگیرنده خود را بهتر با محیط جدید سازگار (adopt) کند.  این سازگاری ناشی از آن است که عامل نیازی به یک جدول به شکل اگر-آن­گاه برای اعمال خود ندارد و می­تواند  عمل (action) درست را بر اساس قواعد کلی که آموخته استتنتاج کند. به عبارت دیگر عمق زیاد دانش عامل یادگیرنده باعث می­شود که طراح عامل در مورد ناشناخته­ بودن فضای جدید و ادراکات جدید نگرانی­ کم تری داشته باشد. یعنی طراح عامل نیاز کم­تری به کسب اطلاعات از محیط به کارگیری عامل خواهد داشت. تصور کنید که دو ماشین یادگیرنده با انبوهی از عملیات جمع و ضرب بین اعداد متفاوت مواجه هستند. ماشین اول تنها آن­ها را حفظ می­کند. اما ماشین دوم میتواند روابط بین آن ها را کشف کند. طبیعی است طراح ماشین اول همواره نگران است که در محیط عمل، ورودی محاسباتی جدید و قبلا دیده نشده به ماشین داده نشود. اما طراح ماشین دوم از این بابت خیالش راحت تر است.Overfit &amp; Underfitعامل یادگیرنده اگر بتواند فرآیند کلیت بخشی را بر اساس داده های ورودی به خوبی انجام دهد آن گاه یک عامل مفید و قابل استفاده است. اما سوال این جا است که چه روشی برای فهم این موضوع وجود دارد؟ چگونه می توان اطمینان پیدا کرد که عامل یادگیرنده کار خود را به خوبی انجام داده است؟ برای این کار کافی است بخشی از داده ها را از عامل مخفی نگه داریم اگر عامل بتواند حتی بر روی داده های دیده نشده (unseen) هم به طرز مطلوبی عمل کند نشان می دهد که عامل، مفید و قابل استفاده است. اما اگر عامل بر روی داده های دیده شده به خوبی عمل کند  و روی داده های دیده نشده بد عمل کند نشان از این دارد که عامل نتوانسته قواعد کلی را از روی داده های دیده شده استنتاج کند و احتمالا داده ها و یا حداکثر قوانین خیلی سطحی را را تنها در درون خود ذخیره کرده است.چنین رویدادی اصطلاحا overfit نامگذاری میشود.اما یک حالت بد تر نیز وجود دارد و آن حالتی است که ماشین حتی بر روی داده های دیده شده هم به خوبی عمل نمی کند. این رخداد عمدتا به دلیل کم بودن حجم داده ی دیده شده یا به دلیل ضعف ماشین روی می دهد.در ادبیات متداول یادگیری ماشین داده ی دیده شده را داده ی آموزش (train) و داده ی دیده نشده را داده ی آزمون (test) مینامند.پس...به طور کلی هر چه ساختار عامل یادگیرنده مستقل از محیط به کارگیری آن باشد یعنی طراح عامل، به اطلاعات کم تری از محیط به کارگیری عامل احتیاج داشته باشد آن عامل خودمختاری (autonomy) بیشتری دارد. خود مختاری نقش اساسی در هوشمندی یک عامل را دارد. در این جا شما را به توجه بین مفهوم خودکار بودن و خودمختار بودن جلب می­کنم. در این جامشاهده می­ شود که دستگاه­های خودکار که در ادبیات فارسی روزمره به اشتباه هوشمند نامیده می­شوند اصلا هوشمند نیستند. یا به عبارت محترمانه ­تر از حداقل هوشمندی برخورداراند. از این دیدگاه &quot;کارت هوشمند سوخت&quot; یک نام گذاری نادرست است.</description>
                <category>محمد حسن بشری موحد | Hassan Bashari</category>
                <author>محمد حسن بشری موحد | Hassan Bashari</author>
                <pubDate>Thu, 12 Apr 2018 12:35:32 +0430</pubDate>
            </item>
            </channel>
</rss>