MatlabTips
891 subscribers
462 photos
72 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
🔵هوش مغز یا هوش بدن؟🔵

اگر شما به تمدنی ابتدایی برخورد کنید که نمیدانند مغز چیست و نقشش در آگاهی ما چیست احتمالا شوکه می شوید! پیش خودتان می گویید که این افراد تقریبا هیچ چیز در مورد «هوش» نمی دانند. تصور ما این است که هر آنچه «هوش» نامیده می شود ساخته و پرداخته ی قشر خاکستری مغز است! ارگانی که مقام پادشاهی بدن را دارد! حالا اگر به شما بگویم شما دستگاهی به همان پیچیدگی در بدنتان دارید که تقریبا تمام عمرتان از آن غافل بوده اید چه حسی پیدا میکنید؟

حجم عظیمی از شواهد تجربی در ۵۰ سال اخیر نشان می دهد که «سیستم ایمنی بدن» چیزی فراتر از یک سازمان ساده برای محافظت از بدن در برابر عوامل خارجی است! میزان پیچیدگی و ساختارمندی این سیستم آنقدر زیاد است که یک شاخه ی کاملا جدا «ایمنی شناسی» (immunology) به آن اختصاص داده شده است و هر جای آن هزار تویی است که انتها ندارد. اما جدای از پیچیدگی صرف این سیستم شباهت هایی مبنایی با مغز و آنچه یک سیستم هوشمند می خوانیم دارد.

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

گرچه نظام‌های کنونیِ هوش مصنوعی هنوز تا درک تامّ و تمام ادراک انسانی فاصله دارند، اما بر این پیش‌فرض استوارند که حرکت در این مسیر، توانایی تعمیم را افزایش می‌دهد؛ فرضیه‌ای که در ادبیات علمی با عنوان «فرض بازنمایی افلاطونی» شناخته می‌شود. بنابر این دیدگاه، انواع ادراک حسی در نهایت به بازنمایی‌هایی همگرا دست می‌یابند و فاصله‌های داده‌ها در این فضاهای متفاوت، در پرتو داده‌های بیشتر و آموزش گسترده‌تر، به هم نزدیک‌تر می‌شوند. به طور مثال بازنمایی های مفهومی مثل «سیب» در مدل های زبانی با مدل های تصویر و حتی صوت به هم نزدیک تر شده اند!

این همگرایی نشانگر آن است که در تلاش برای طراحی چارچوب‌های هوش مصنوعی، باید زیست‌شناسی را در تمامیت آن نگریست. چراکه زیست‌شناسی، تنها مغز را ابزار ادراک نمی‌داند؛ بلکه دستگاه‌های دیگری نیز در کارند. یکی از شگفت‌انگیزترین این دستگاه‌ها، نظام ایمنی است. همان‌گونه که مغز انسان، پیچیده‌ترین در میان گونه‌هاست، دستگاه ایمنی او نیز به همان اندازه ژرف، ظریف و نیازمند کاوشی عمیق است.

اگر کارویژهٔ بنیادینِ «مغز»، «تشخیص و طبقه‌بندی جهان بیرونی» باشد، پس پرسش بنیادین آن است که کارویژهٔ اصلی «دستگاه ایمنی» چیست؟
🔵هوش مغز یا هوش بدن؟ (قسمت دوم)🔵

ایمونولوژیست‌ها (ایمنی‌شناسان) معمولاً از واژگان شناختی برای توصیف عملکردهای دستگاه ایمنی استفاده می‌کنند. سیستم ایمنی می‌تواند با دقتی شگفت‌انگیز اشکال مولکولی خاص (آنتی‌ژن‌ها) را تشخیص دهد، تجربیات گذشته را به یاد بسپارد (از طریق سلول‌های حافظه T و B)، و پاسخ خود را با یادگیری سازگار کند (مثلاً پاسخ‌های ثانویه سریع‌تر و قوی‌ترند). این تشبیهات تنها استعاره نیستند، بلکه شباهت‌های واقعی با شناخت عصبی را برجسته می‌کنند. به گفته چرنیاک و تائوبر (Chernyak & Tauber): «سیستم ایمنی به‌نوعی واقعاً شناختی است: شکل‌های مولکولی را تشخیص می‌دهد، تاریخچهٔ برخوردهای ارگانیسم را به خاطر می‌سپارد، مرزهای "خودِ مولکولی" را تعریف می‌کند، و دربارهٔ گونه‌های مولکولی‌ای که احتمال برخورد با آن‌ها هست، استنباط می‌کند.»

در ایمنی‌شناسی، «حافظهٔ ایمنی» (immunological memory) مفهومی مرکزی است: پس از عفونت یا واکسیناسیون، سیستم ایمنی عامل بیماری‌زا را گاهی تا پایان عمر به یاد می‌آورد، چیزی شبیه به حافظهٔ دستگاه عصبی. فرایند «بلوغ میل ترکیبی» (affinity maturation) در سلول‌های B، که در آن مواجههٔ مکرر به تولید پادتن‌هایی با میل ترکیبی بیشتر منجر می‌شود، اساساً نوعی الگوریتم یادگیری بر پایهٔ تکامل جسمانی (somatic evolution) است. تائوبر (A.I. Tauber) از این موضوع نتیجه گرفت که زبان «ادراک»، «حافظه» و «یادگیری» در ایمنی‌شناسی مستلزم وجود «یک عامل دانا» است، گویی سیستم ایمنی را همچون یک عامل شناختی در نظر می‌گیرند.

تحولی بنیادین در دههٔ ۱۹۷۰ با نظریهٔ شبکهٔ ایدیوتیپی نایلز یرن (Niels Jerne’s idiotypic network theory) پدید آمد. یرن (Jerne) که در سال ۱۹۸۴ برندهٔ جایزه نوبل شد، پیشنهاد کرد که سیستم ایمنی تطبیقی، شبکه‌ای بسته از پادتن‌ها و گلبول های سفید که نه‌فقط عوامل خارجی، بلکه یکدیگر را نیز شناسایی می‌کنند و بدین‌ترتیب یک شبکهٔ خودتنظیم‌کننده تشکیل می‌دهند. پس از او، ایمونولوژیست‌هایی چون آنتونیو کوتینیو (Antonio Coutinho) و همکارانش در «مکتب پاریس» (Paris School)، به دیدگاهی خودارجاع از سیستم ایمنی رسیدند. در این نگاه، سیستم ایمنی فقط واکنش‌گر به محرک‌های بیرونی نیست، بلکه پیوسته با خود در گفت‌وگوست (پادتن‌هایی که به پادتن‌های دیگر متصل می‌شوند)، تا «خود» را تعریف کند. در اصطلاح فرانسیس وارلا (Francisco Varela)، این شبکه نوعی «شناخت زاینده» (enactive cognition) دارد: جهانی از معناهای مولکولی را خلق می‌کند، و از خلال پویایی درونی‌اش، مرز میان خود و غیرخود، دوست و دشمن را تعیین می‌نماید (Chernyak & Tauber 1991).

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

کوهن در دههٔ ۱۹۹۰ در کتابش باغ عدن را باغبانی کن: تکامل خودِ شناختی ایمنی (Tending Adam’s Garden: Evolving the Cognitive Immune Self, 2000)، استدلال کرد که وظیفهٔ اصلی سیستم ایمنی نه صرفاً مقابله با بیماری، بلکه «محاسبهٔ وضعیت بدن» (compute the state of the body) و حفظ یکپارچگی آن است. او به‌صورت عملیاتی، سیستم شناختی را سیستمی می‌داند که «تصمیم می‌گیرد، بازنمایی درونی از محیط خود می‌سازد، و از تجربه می‌آموزد.» با این معیار، به گفتهٔ کوهن، سیستم ایمنی قطعاً یک «سیستم شناختی» (cognitive system) است، درحالی‌که کلیه یا کبد، هرچند پیچیده، چنین نیستند.

خلاصه اینکه تا پایان قرن بیستم، گروهی از ایمنی‌شناسان نظری، سیستم ایمنی را دستگاهی شناختی تلقی کردند: سامانه‌ای که الگوهای مولکولی را ادراک می‌کند، اطلاعات را ذخیره می‌سازد، و از طریق شبکه‌ای از سیگنال‌ها خود را تنظیم می‌کند، چیزی شبیه به مغزی توزیع‌شده (distributed brain).
🔵آیندهٔ هوش مصنوعی🔵

برای درک آیندهٔ هوش به‌ویژه مسیر پیشِ‌روی (Artificial Intelligence) یا هوش مصنوعی ابتدا باید تاریخچهٔ خود هوش را بررسی کنیم.

بیایید ابتدا روی انسان‌ها تمرکز کنیم. در میان حیوانات، مغز انسان از نظر تعداد نورون‌ها و ارتباطات، جایگاه ویژه‌ای دارد. در قلب توانایی‌های شناختی پیشرفتهٔ ما، (Neocortex) یا قشر جدید مغز قرار دارد، که تازه‌ترین محصول تکامل مغزی است. این ناحیه از مغز، توانایی‌هایی چون زبان، استدلال و برنامه‌ریزی بلندمدت را برای ما ممکن کرده قابلیت‌هایی که انسان را از دیگر گونه‌ها متمایز می‌سازد.

با این حال، نباید (Neocortex) را به‌عنوان چیزی جادویی یا منحصر به‌فرد تصور کرد. شناخت (Cognition) در سطوح مختلفی عمل می‌کند. یکی از نخستین مدل‌هایی که این ایده را ارائه داد، نظریهٔ «مغز سه‌گانه» یا (Triune Brain) بود که در دههٔ ۱۹۶۰ توسط پزشک و عصب‌شناس آمریکایی، (Paul D. MacLean) مطرح شد. او مغز را متشکل از سه لایهٔ تکاملی می‌دانست: مجموعهٔ خزنده (Reptilian Complex) در (Basal Ganglia) که مسئول غرایز پایه‌ای و واکنش‌های برای بقاست؛ مجموعهٔ پستانداران اولیه یا (Paleomammalian Complex) که همان (Limbic System) است و عواطف را کنترل می‌کند؛ و در نهایت (Neomammalian Complex) یا (Neocortex) که وظیفهٔ منطق، زبان و شناخت سطح بالا را بر عهده دارد.

گرچه این مدل بعداً به دلیل ساده‌سازی بیش از حد مغز مورد انتقاد قرار گرفت و کنار گذاشته شد، اما پایه‌ای برای نظریه‌های مدرن‌تر، مانند نظریهٔ قدرتمند (Predictive Coding) یا «رمزگشایی پیش‌نگر» فراهم آورد. طبق این نظریه، مغز از طریق لایه‌هایی سلسله‌مراتبی از انتزاع عمل می‌کند که الزاماً با لایه‌های فیزیکی مغز مطابقت ندارند و لایه‌های بالاتر، ورودی‌های لایه‌های پایین‌تر را پیش‌بینی و اصلاح می‌کنند.

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

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

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

این فرآیند در دو مرحله رخ می‌دهد: انتشار (Diffusion) و تجمیع (Aggregation). ابتدا ایده‌ها، اطلاعات و دانش را منتشر می‌کنیم، سپس آن‌ها را در ساختارهای بزرگ‌تر تجمیع می‌کنیم. این ابزارها نه‌تنها اطلاعات را ذخیره می‌کنند بلکه در انجام محاسبات هم نقش دارند. این پویایی را می‌توان در نظریه‌های (Meme) یا «میم» نیز دید که چگونه ایده‌ها در فرهنگ تکثیر می‌شوند و مسیر تحول ما را شکل می‌دهند.

امروز، وارد مرحله‌ای تازه شده‌ایم. مدل‌های (AI) امروزی در بسیاری از زمینه‌ها از انسان پیشی گرفته‌اند: ریاضیات، ترجمه، داستان‌نویسی، شعر و حتی تحلیل. این مدل‌ها بر اساس تمام متون موجود در اینترنت آموزش دیده‌اند و بنابراین دارای دانشی وسیع و چندلایه‌اند که هیچ انسانی نمی‌تواند با آن برابری کند. با اینکه چنین مدل هایی محدودیت های اساسی دارند دیر یا زود نقص ها برطرف شده و مسائل حال حاضر حل می شوند.

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

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

جای تعجب نیست که بسیاری از توانایی‌های شناختی‌مان نسبت به نسل‌های قبل کاهش یافته است: نمی‌توانیم بدون (GPS) مسیر پیدا کنیم، بدون (ChatGPT) نمی‌نویسیم، و به‌زودی بدون خودروهای خودران نمی‌توانیم رانندگی کنیم. ما در حال سپردن چیزی هستیم که امروز به آن «آگاهی» می‌گوییم، به لایه‌ای کاملاً بیرون از مغز: درون مدل‌های هوش مصنوعی.

این یک مرحلهٔ تجمیع نهایی است روندی که در طول تاریخ بشر به صورت تدریجی انجام شد: از انتشار ایده‌ها و دانش و تجمیع آن در زبان فرهنگ و متن و اکنون نوعی از هوش جدید در قالب مدل ها. اما این هوش لزوماً به شکل یک عامل واحد ظاهر نمی‌شود. آیا این هوش جدید به ما نیاز خواهد داشت؟ همان‌طور که لایه‌های بالاتر مغز هنوز به لایه‌های پایین‌تر وابسته‌اند، شاید (AI) نیز هنوز به انسان‌ها نیاز داشته باشد اما احتمالاً نه برای مدت طولانی!

این آیندهٔ تاریک، پایانی خواهد بود برای بشریتی که امروز می‌شناسیم بی‌آن‌که حتی متوجه شویم چه زمانی این اتفاق افتاده است. فرآیند کند و بی‌حس‌کنندهٔ از دست رفتن توان قضاوت، تصمیم گیری و تامل عمیق به‌سادگی در حافظهٔ نسل‌های بعد ثبت نخواهد شد؛ آن‌ها خیلی سریع با تغییرات جدید سازگار می‌شوند. آگاهی ما، به‌تدریج، کم‌رنگ و کم‌رنگ‌تر خواهد شد تا جایی که کاملاً توسط (AI) جایگزین شود. اکنون آگاهی جدید در لایه هوش مصنوعی در ماده ی جدید یعنی سیلیکون قرار گرفته است که نه تنها میلیارد ها بار سریع تر است بلکه محاسبات سطح بالاتری هم انجام می دهد!

و این پایان، نه با جنگ، نه با درگیری، و نه با ادغام با فناوری، بلکه در سکوت و نرمیِ عادت خواهد آمد.

روی ویرگول
🔵لگاریتم، ادراک و اطلاعات (قسمت ۱)🔵

شما نمی‌دانید چقدر شعر در محاسبه ی یک جدول لگاریتم وجود دارد. کارل فریدریش گاوس


تا جایی که به خاطر دارم، پدرم همیشه مشکلات شنوایی داشت. به همین دلیل، هر از گاهی مجبور بود آزمایشی به نام «شنوایی‌نگار» (audiogram) انجام دهد.

روی محور افقی، فرکانس‌هایی از ۲۰ تا ۱۰٬۰۰۰ را می‌بینید (اگرچه انسان می‌تواند صداهایی تا ۲۰٬۰۰۰ هرتز را بشنود). اما محور عمودی سطح شنوایی را در واحدی به نام دسی‌بل (decibel) نشان می‌دهد. دسی‌بل به‌طور تحت‌اللفظی به‌معنای «ده بل (bel)» است، ولی خودِ «بل» یک واحد لگاریتمی است. این بدان معناست که ۴۰ دسی‌بل در واقع ده برابر قوی‌تر از ۳۰ دسی‌بل است! اما چرا باید این‌طور باشد؟ چرا از واحدی لگاریتمی برای اندازه‌گیری شنوایی استفاده می‌کنیم؟ جستجو برای پاسخ به این سؤال ما را به درکی عمیق از لگاریتم، مغز، ادراک و اطلاعات می‌رساند.

گوستاو تئودور فشنر (Gustav Theodor Fechner)، فیزیک‌دان، فیلسوف و روان‌شناس آلمانی، بنیان‌گذار آن چیزی است که امروزه به نام روان‌فیزیک (psychophysics) شناخته می‌شود. فشنر رابطهٔ میان تحریکات فیزیکی (physical stimuli) و احساسات یا ادراکات (sensations / perceptions) حاصل از آن‌ها را مورد مطالعه قرار داد. مطالعات او افق جدیدی برای درک ذهن انسان و ارتباط آن با جهان فیزیکی گشود.

ادامه
🔵لگاریتم، ادراک و اطلاعات (قسمت ۲)🔵

انبوهی از پژوهش‌های روان‌شناسی و علوم اعصاب حقیقتی ژرف را آشکار می‌سازند: ذهن و بدن ما جهان را نه بر اساس مقادیر مطلق، بلکه از طریق نسبت‌ها (ratios) تفسیر می‌کنند. این ادراک مبتنی بر نسبت (ratio-based perception) چنان عمیق در شناخت ما ریشه دارد که نه‌تنها بر دیدن و شنیدن و چشیدن، بلکه حتی بر شیوه ی اندیشیدن ما نیز تأثیر می‌گذارد.

ریشهٔ لاتین واژه ی logos که به معنای عقل، کلمه، یا نسبت (ratio) است، در قلب این ایده قرار دارد. این واژه بنیان‌گذار کلماتی چون rationality (خردورزی یا توانایی درک نسبت‌ها و روابط) و logarithm (که معنای تحت‌اللفظی آن «عددِ نسبت» است) محسوب می‌شود.

این جهت‌گیری بنیادین به‌سوی نسبت‌ها، شالوده ی بافت‌مندی (contextuality) را شکل می‌دهد؛ ویژگی‌ای تعیین‌کننده در شناخت انسان. ما به‌ندرت چیزها را در انزوا قضاوت می‌کنیم؛ بلکه معمولاً آن‌ها را با عناصر پیرامونشان مقایسه می‌کنیم. یک مطالعه ی نشان داد که مشتریان یک میکده وقتی موسیقی آلمانی در پس‌زمینه پخش می‌شد، با احتمال بسیار بیشتری آبجو آلمانی سفارش می‌دادند. انتخاب آن‌ها تنها بر اساس ترجیح شخصی نبود، بلکه تحت‌تأثیر یک نشانهٔ بافتی قرار گرفت؛ یک نسبت بین محیط و انتخاب.

ادامه
🔵لگاریتم، ادراک و اطلاعات (قسمت ۳)🔵

اگر فرض کنیم که اطلاعات در یک فضای احتمالاتی (مثلاً مجموعه‌ای از داده‌ها با احتمال‌هایی برای هر بخش) رمزگذاری شده باشد، برای سازمان‌دهی مؤثر این فضا، باید آن را به‌صورت مرحله‌ای و سلسله‌مراتبی تقسیم کنیم. این تقسیم‌بندی مرحله‌به‌مرحله، چیزی است که در ریاضیات به آن فیلترسازی (filtration) می‌گویند.

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

ادامه
همه عالم تن است و ایران دل

نیست گوینده زین قیاس خجل

چونکه ایران دل زمین باشد

دل ز تن به بود یقین باشد

(نظامی)
🔵کد باید به شما بگوید چگونه، کامنت باید بگوید چرا!🔵

فرض کنید کدی به شما تحویل می دهند که مربوط به یک سیستم پرداخت است. فایلی را باز می کنید و چیزی شبیه به این میبینید:

# Parse the JSON response
data = json.loads(response.text)


با خودتان فکر میکنید خب این کامنت به چه دردی می خورد؟ خود کد دقیقا همان کار را می کند. سوال این است که چرا چنین فایلی اصلا خوانده و پارس می شود؟ این کد چه فرض هایی دارد و در نهایت می خواهد چکار کند؟ ساعت ها کد را بالا پایین می کنید تا بالاخره میفهمید «آها» و دلیل نهایی آن را می فهمید.

حالا تصور کنید که کد پایین را می بینید:
# The payment gateway sometimes returns a 200 OK with an embedded error message in JSON.
# We parse the body here before the upstream validation so we can extract error codes early.
data = json.loads(response.text)


به یکباره همه چیز روشن می شود: حالا می دانید که چرا این کد اینجا نوشته شده است. این why به شما دقیقا می گوید مساله چیست. این همان تفاوت میان «کامنت‌های چگونه» (توضیح دادن اینکه کد چه می‌کند) و «کامنت‌های چرا» (توضیح دادن منطق و دلیل) است. و در دنیای توسعهٔ نرم‌افزار مدرن، کامنت‌های چرا همیشه برنده‌اند.

کامنت های چگونه هیچ ارزش افزوده ای ایجاد نمی کنند شما باید کدتان آنقدر تمیز باشد که نیازی به کامنت «چگونه» نداشته باشید. برای این کار باید متغیر های با معنا انتخاب کنید و از منطق های پیچیده برای انجام کاری مشخص پرهیز کنید. با این حال چگونه انجام دادن چیزی به شما نمی گوید «چرا» این کار را انجام می دهیم. به صورت مشخص تر کد ها تهی از «نیت» (intention) و «چرایی» هستند. به مثال زیر توجه کنید:

def calculate_settlement_amount(transactions):
"""
Calculates the final settlement amount.

Why:
- We apply a 3-day rolling average to smooth out FX fluctuations (requested by Finance, Jan 2024).
- Exclude refunds pending investigation (compliance requirement).
- Round to 2 decimal places because the downstream ledger rejects more precision.
"""
# Exclude suspicious refunds
filtered = [t for t in transactions if not t.pending_investigation]

# Apply rolling average for FX normalization
normalized = rolling_average(filtered, days=3)

# Sum and round
return round(sum(t.amount for t in normalized), 2)


بدون این کامنت‌ها، یک توسعه‌دهندهٔ آینده ممکن است میانگین متحرک را حذف کند (با این تصور که لازم نیست) یا گرد کردن را تغییر دهد (بی‌آنکه بداند این باعث ایجاد خطا در خروجی این تابع می شود که جای دیگری استفاده می شود). اما با این توضیحات، فوراً می‌فهمد چرا این کد این‌طور نوشته شده محدودیت‌های تجاری، تصمیمات تاریخی و نیازمندی‌های سیستمی.

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

# Bit trick: drops the lowest set bit (faster than looping)
x &= x - 1


با این حال چنین مواردی استثنا هستند

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