یادگیری

  • یوسف مهرداد بی‌بالان

یک سالی که گذشت پر بود از موضوعات نو و نادیده که همراه خود آموختنی‌های بسیار داشت. از فرهنگ و زبان نو بگیرید تا زبان‌های برنامه‌نویسی تازه به اوج رسیده.
اگر بخواهم از بین آموخته‌ها تنها یکی را انتخاب کنم که هم از نظر تغییر شیوه‌ی تفکر، هم از نظر برانگیختن حس کنجکاوی و هم از نظر شیفتگی در رتبه یک قرار داشته باشد، بی‌شک باید بگویم “یاد گرفتم که ماشین‌ها چگونه یاد می‌گیرند“؛ به زبان ساده‌تر “یادگیری ماشین” یا Machine Learning.
روش یادگیری ما هم نسبت به گذشته از بیخ و بن متحول شده است. یادم هست زمانی که دانشجوی کارشناسی بودم و درس “ارائه مطالب علمی و فنی” با استاد عزیزم آقای دکتر رامسین داشتم، برای تهیه مطالب ارائه که موضوع‌اش “وراثت در شی‌گرایی” بود، علاوه بر کتابخانه دانشکده و کتابخانه‌ی مرکزی دانشگاه، به چندین کتابخانه‌ی معتبر تهران از جمله کتابخانه‌ی شرکت داده‌پردازی، مرکز تحقیقات نیرو و کتابخانه‌های دانشگاه‌ها رفتم. و چون نمی‌توانستم کتاب‌ها را امانت بگیرم، کتاب‌ها را همان جا می‌خواندم و نکات مهم آن را روی فیش‌های کاغذی یادداشت می‌کردم تا بعد بتوانم از روی آن محتوای ارائه را آماده کنم. امروز کافی است در جستجوگر گوگل عنوانی را بنویسید و با یک کلیک، با انبوهی از اطلاعات بمباران شوید و جدا کردن سره از ناسره شده است مساله‌ی اصلی یادگیری.

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

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

  • یوسف مهرداد بی‌بالان

در ابتدای این وبینار، مهندس یوسف مهرداد بی‌بالان یک سخنرانی با موضوع «TDD: خوب، بد، زشت» خواهند داشت. و پس از آن، گفتگو در قالب یک پنل تخصصی ادامه خواهد یافت.

افراد حاضر در پنل:
▫️یوسف مهرداد بی‌بالان
▫️اسد صفری
▫️روح‌الله دلپاک
▫️ابراهیم نبیئی
▫️مسعود بهرامی

برگزار کننده: مکتب‌خانه DDD

شرکت در این وبینار رایگان است.

⏱زمان: پنجشنبه هشتم آبان ۱۳۹۹ – ساعت ۱۸ الی ۲۰

???? لینک ثبت‌نام در رویداد: yun.ir/npwk8

@DomainDrivenDesign_ir

عاشق استاد شجریان

  • یوسف مهرداد بی‌بالان

امیدوارم روح استاد محمدرضا شجریان در آرامش و دل خانواده، دوستان و دوست‌دارانش شاد باشد. نامش جاودانه باد.

صدای او در کنار صدای استاد شهرام ناظری بخش زیادی از خاطرات موسیقیایی من و هم‌نسل‌هایم را تشکیل می‌دهد، به ویژه آنجا که شعرها نیز با شور و عشق جوانی همراه می‌شد.

بگذار تا مقابل روی تو بگذریم دزدیده در شمایل خوب تو بنگریم
شوق است در جدایی و جور است در نظر هم جور به که طاقت شوقت نیاوریم
روی ار به روی ما نکنی حکم از آن توست بازآ که روی در قدمانت بگستریم
ما را سری‌ست با تو که گر خلق روزگار دشمن شوند و سر برود هم بر آن سریم
گفتی ز خاک بیشترند اهل عشق من از خاک بیشتر نه که از خاک کمتریم

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

اگر تو با این دل حزین عهد بستی حبیب من با رقیب من، چرا نشستی؟
چرا عزیزم دل مرا از کینه خستی؟ بیا برم شبی از وفا ای مه الستی
تازه کن عهدی که با ما بستی

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

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

امیدوارم روح هر دوی آنها، هم استاد و هم حسین آقا، در آرامش و شادی باشد.

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

کلاس یادگیری ماشین

  • یوسف مهرداد بی‌بالان

این هفته‌ها، یکی از بهترین ساعت‌های زندگی من، زمانی است که کلاس “یادگیری ماشین” شروع می‌شود. با این که زمان زیادی می‌برد تا مطالب هر جلسه را طراحی کنم و بعد محتوای آن را آماده نمایم، ولی در پایان، چیزی که باقی می‌ماند خوشحالی است.
جلسه به جلسه، مطالب دشوارتر و پیشرفته‌تر می‌شود و چالش روش ارائه‌ی آن به ساده‌ترین زبان ممکن هم سخت‌تر و سخت‌تر. چه موجود شگفت‌آور و دلربایی است این یادگیری ماشین!

گزیده:

“Just as electricity transformed almost everything 100 years ago, today I actually have a hard time thinking of an industry that I don’t think AI (Artificial Intelligence) will transform in the next several years.” ~Andrew Ng

پارادکس چابکی

  • یوسف مهرداد بی‌بالان

مقدمه:
در فیلم “رکود بزرگ” (Big Short)، در ابتدای فیلم که می‌خواهد نقش‌های اصلی فیلم را معرفی کند، وقتی نوبت به “مارک بام” می‌رسد نشان می‌دهد که وقتی مارک کودک بود، مادرش او را به یک روحانی مذهبی می‌سپارد تا به او خواندن و فهمیدن کتاب مقدس را بیاموزد. بعد نشان می‌دهد که چند وقت بعد، روحانی مذهبی مارک را پیش مادرش برده و می‌گوید که او دیگر در کلاس وی جایی ندارد و او را از کلاس اخراج می‌کند. مادر سراسیمه می‌پرسد که آیا پسرش کتاب مقدس را نمی‌خواند. روحانی در پاسخ می‌گوید که نه، اتفاقا خیلی خوب و دقیق کتاب مقدس را می‌خواند ولی نه برای یادگیری، بلکه برای پیدا کردن اشکالات و تناقض‌های کتاب مقدس. 🙂
حالا این حکایت شده کار من، بنشینم و تناقض‌ها را با این هدف که بیشتر و بهتر یاد بگیرم، پیدا کنم و به آنها فکر کنم. یادم می‌آید به توصیه یکی از اساتیدم، یکی از اولین کتاب‌هایی که در مورد چابکی خواندم، کتابی بود که در رد نظرات اکس‌پی نوشته شده بود و چقدر هم به یادگیری من کمک کرد. این استاد عزیز می‌گفت هر وقت می‌خواهید موضوعی را یاد بگیرید ابتدا بروید و نقدهای آن را بخوانید.

بیانیه‌ی چابکی:
در بیانیه چابکی گفته شده است “افراد و تعامل بین آنها” با ارزش‌تر است از “فرایندها و ابزارها”.

نمی‌دانم چرا وقتی بعضی از مطالب درباره‌ی چابکی، اسکرام و کانبان و … را می‌خوانم (حتی از گذشته‌های دور)، برداشتم از گفته‌ها و نوشته‌های نویسنده چیزی خلاف این موضوع است. باور من این است که احتمالا منظور نویسنده یا گوینده را درست متوجه نشده‌ام.
در هر صورت، برای یادآوری به خودم، بیانیه را به شکل زیر بازنویسی کردم تا یادم بماند:
“فرایندها و ابزارها” از “افراد و تعامل بین آنها” با ارزش‌تر نیستند.

پارادکس:
چند وقتی است که موضوعی ذهن من را به خودش مشغول کرده است. و اما چالش این روزهای من یافتن پاسخ این پرسش است که:
آیا متدهای چابک مثل اکس‌پی و اسکرام هم شامل همین فرایندها می‌شوند یا نه؟

پایتون: این مار خوش خط و خال!

  • یوسف مهرداد بی‌بالان

شی‌گرایی:
چه خوب است که بهانه‌ای پیدا کردم تا از برادر، دوست و استاد عزیزم، علی آقای عبداللهی، تشکر کنم.
یادم می‌آید بعد از این که فهمیدم شی‌گرایی (Object Orientation) به معنای واقعی چیست و چه کاربردی دارد، علاقه‌ی من به دنیای نرم‌افزار دوچندان شد. این داستان بر می‌گردد به سال دوم یا سوم دانشگاه. علی آقای عبداللهی که هم در دبیرستان و هم در دانشگاه سال بالایی ما بودند، نقش اصلی این داستان هستند. یک روز که در خوابگاه با ایشان صحبت می‌کردم صحبت از شی‌گرایی شد و ایشان از یک کتابخانه‌ی نرم‌افزاری صحبت کرد که خودشان نوشته بود. بخشی از این کتابخانه، یک کلاس با زبان سی‌پلاس‌پلاس بود که موقع ایجاد (new) دو نقطه از صفحه‌ی نمایش (مانیتور) را دریافت می‌کرد، محتویات صفحه‌ی نمایش بین این دو نقطه را ذخیره می‌کرد و موقع حذف این کلاس (delete) محتویات ذخیره شده، یعنی همان صفحه‌ی قبلی دوباره روی صفحه‌ی نمایش نوشته می‌شد. کاربرد این برنامه این بود که در محیط سیستم عامل داس (MS DOS)، شما می‌توانستید نرم‌افزاری بنویسید که در آن، به راحتی پنجره‌ها روی هم باز و بسته شوند. فقط و فقط این کد، یک بار نوشته شده بود و امکان ارث بری و بقیه‌ی قابلیت‌های شی‌گرایی نیز در آن وجود داشت. دیدن این کد و برنامه، جرقه‌ای بود که درک کنم شی‌گرایی چیست و بیش از پیش از آن لذت ببرم. لذتی که هنوز هم ادامه دارد. سپاسگزارم آقای مهندس عبداللهی عزیز.

پایتون: چه زبان عجیب و غریبی
روزهای اولی که کدهای پایتون را می‌دیدم، تحت تاثیر زبان‌هایی مانند س‌پلاس‌پلاس، سی‌شارپ و جاوا، مدام این جمله در ذهنم تکرار می‌شد: “این چرا این جوریه!”. 🙂 “پایتون هم شد زبان برنامه‌نویسی!” 🙂 . مانند اکثر دوستانم به تجربه آموخته بودم که وقتی با زبان جدیدی رو به رو می‌شوید، باید صبور باشید.

باغبان گر پنج روزی صحبت گل بایدش
بر جفای خار هجران صبر بلبل بایدش

ای دل اندر بند زلفش از پریشانی منال
مرغ زیرک چون به دام افتد تحمل بایدش

پایتون: زندگی شیرین می‌شود!
برنامه‌نویسی با کتابخانه‌های پایتون مانند نام‌پای (numpy) و پانداس (pandas) باعث شد کم‌کم این جمله‌ها جایگزین جمله‌های قبلی شود: “وای! چقدر قشنگه این زبان” 🙂 . “اوف! چقدر برنامه با این زبان راحته!” 🙂 هر چند می‌دانستم که اول راه است و آموختنی‌ها بسیار و تمام‌نشدنی.

رند عالم سوز را با مصلحت بینی چه کار
کار ملک است آن که تدبیر و تأمل بایدش

تکیه بر تقوی و دانش در طریقت کافریست
راهرو گر صد هنر دارد توکل بایدش

با چنین زلف و رخش بادا نظربازی حرام
هر که روی یاسمین و جعد سنبل بایدش

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

سخنرانی اول: James Powell: So you want to be a Python expert?
سخنرانی دوم: Joel Grus: Learning Data Science Using Functional Python

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

نازها زان نرگس مستانه‌اش باید کشید
این دل شوریده تا آن جعد و کاکل بایدش

ساقیا در گردش ساغر تعلل تا به چند
دور چون با عاشقان افتد تسلسل بایدش

اثرات مخرب کارهای ناتمام!

  • یوسف مهرداد بی‌بالان

The concept that keeping staff busy might be an ineffective way of managing will be so counterintuitive to many managers that further justification is probably needed.

There are several aspects to excessive WiP that are relevant to effectiveness, among them multi-tasking, context switching, focus, and long lead times.

Recent research on the brain has shown that one of the most expensive things your brain does (in terms of energy consumption) is changing tasks (Levitin,2015). Doing it constantly is draining and ineffective.

Focusing on one task, for periods of around 90 minutes at a time, enables your brain to get into the state known as flow. That’s when your most effective work gets done, and amazingly, it makes you feel good while tiring you out less.

Periods of flow are not your most creative periods, however. Focus is your brain’s mode when you“get things done,” but in your brain’s default mode, your mind flits between ideas. This is when you make connections between things and where creativity springs from. It is also where learning and long-term memories are created.

To be effective, you need time at work to be in both these modes; constant pressure with multiple unfinished tasks is damaging to both modes and results in poorer outcomes. For more on this topic, see (Benson, 2014).

Essential Kanban Condensed, Andy Carmichael and David J. Anderson, 2015

Read this book: Stop Starting, Start Finishing

برای خروج از جستجو کلید ESC را بفشارید