رفتن به محتوای اصلی

ماتریس و بردار، مبادی فهم هوش مصنوعی

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

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

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

در این فضا یک مثالی را عرض می‌کنم تا جلو برویم. ببینیم در همین کلمۀ ساده‌ای که با هم محاوره کردیم، چه کارهایی در ذهن این دو نفر صورت می‌گیرد تا این محاوره ساده در زبان طبیعی انجام شود. حالا مثالی که عرض می‌کنم، این است: یک برگه کاغذ جلویتان بگیرید. نگاه می‌کنید که دو نقطه طرف راست و چپ این کاغذ هست. یک نقطه با فاصله سه سانت از حاشیه طرف راست است، دیگری هم سه سانت از حاشیه چپ فاصله دارد. حالا راجع به همین کاغذ و دو نقطه راست و چپش سؤالاتی را مطرح می‌کنیم.

سؤال من این است: می‌گوییم کدام یک از این نقاط "یک" است و کدام "دو" است؟ اینجا که نمی‌توان گفت کدام "یک" است و کدام "دو" است. هر کدام می‌تواند "یک" باشد یا "دو" باشد. اما این‌ها چند نقطه است؟ دو نقطه است. این‌که کدام "یک" است و کدام "دو" است، به دست ما بود؛ اگر از این راه می‌رفتیم، می‌گفتیم این "یک" است و آن "دو" است، اما اگر از آن راه برویم، برعکس می‌شود. اما دو نقطه بودن آن‌ها به دست ما است؟! این به دست ما نیست. الآن در اینجا یک چیزی است که فقط درکش می‌کنیم. این‌که بگوییم این "یک" است و آن "دو" است، چیزی را درک نمی‌کنیم، بلکه داریم می‌شماریم و کار ذهنی‌ای انجام می‌دهیم. اما وقتی می‌گوییم دو نقطه است، داریم یک چیزی را درک می‌کنیم که به دست ما نیست.

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

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

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

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

شاگرد۴: اعتبارش دست ما است.

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

شاگرد۵: منظورتان این است که از نقطه چپ و راست به فضا برویم؟

استاد: نه، سه بعدی از دل استوانه منظورم است.

شاگرد۵: اول فضای دو بعدی بود.

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

شاگرد۵: این همان فضای دو بعد است.

استاد: دو بعد نیست. دو بعد که همان ده سانت است.

شاگرد۶: منظورشان این است: خط مستقیمی که در سطح بود الآن در فضا است.

شاگرد۷: در ریاضیات فاصله را به کوتاه‌ترین فاصله بین دو نقطه معنا می‌کنند.

استاد: نه، این خط مستقیم است. می‌گوییم خط مستقیم کوتاه‌ترین فاصله است. تازه آن هم در چه سطحی؟ کوتاه‌ترین فاصله بین تهران و بندر، روی کره است یا از وسط می‌روید؟ اگر از زیر زمین بروید، کوتاه‌ترین فاصله است. اگر روی زمین بروید، یک قوس است. اصلاً هندسه‌های نااقلیدسی که درآمد، همین بود. خط مستقیم، بسط پیدا کرد. خط مستقیم در صفحه با خط منحنی در صفحه یک چیز بود و خط مستقیم در سطح - اعم از صفحه و غیر صفحه - تفاوت می‌کرد. همین بود که در هندسه ریمانی در سطح، خط مستقیم داریم، اما سطح مثبت. در هندسه هذلولوی خط مستقیم در سطح داریم، اما سطح منفی. در هندسه اقلیدسی، خط مستقیم در سطح داریم، اما سطح صفر؛ نه مثبت و نه منفی. این‌ها مطالب خوبی است.

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

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

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

این مسافرت و مبدأ و منتهی را گفتم. آن وقت بعداً می‌بینید الآن که می‌گوید مسافرت مبدأ و منتهی و جهت نیاز دارد، در همین پردازش زبان طبیعی ساده‌ای که گفت «می‌خواهی مسافرت بروی؟»، بین طرفین محاوره معلوم بود که تا گفت «مسافرت»، یک مدخلی در فرهنگ عمید باز می‌شود. چرا در دیکشنری یک مدخل دارد؟ یعنی در اهل زبان تا می‌گویید مسافرت، این مؤلفه‌ها در ذهنشان جوش خورده و می‌دانند که مسافرت مبدأ و منتهی و سیر و فاصله دارد؛ آن هم با انواع سیرها. لذا بعداً نمی‌گوید قیمت مسافرت چند است. رنگش چیست. می‌گوید فاصله مسافرت تو چقدر است. با چه چیزی می‌خواهی بروی؟ سرعت حرکتت چقدر است؟ سرعت و میانگین سرعت و … پیش می‌آید. یعنی از دل مسافرت، حیثیاتی پیش می‌آید که اهل یک زبان، همه این‌ها را می‌دانند و به‌صورت ناخودآگاه در ذهنشان فعال است و با هم محاوره می‌کنند. وقتی خواستند زبان طبیعی را پردازش کنند، به جاهایی رسیدند و دیدند که با صرف مطالب قبلی نمی‌شود. اینجا جالب بود. آن وقت سراغ بردارها و جبر خطی رفتند. مثل جبر بولی که شانون آورد، این‌ها هم برای پیشرفت فن امروز، جبر خطی را وارد کردند. مثل آنجا که اگر جبر دو ارزشی و دو گزینه ای نبود، اصلاً ما کامپیوتر نداشتیم، اگر جبر خطی نبود امروز مدل‌های زبانی لارج و بزرگ را نداشتیم. همه این پیشرفت‌های ما به‌خصوص در این چند سال اخیر زیر سر به کار گیری ابزار ریاضی جبر خطی بوده است. جبر خطی، جبر همین بردارها و ماتریس‌ها است. جمع و ضرب همه این‌ها را وارد کردند و این همه عجائب داریم. الآن وقتی شما با آن سؤال و جواب می‌کنید، اگر کسی نداند، نمی فهمد که یک ماشین است و دارد جواب می‌دهد. هوش پایه‌محوری است که هیچ فهم معنا در آن نیست، ولی دارد این کار را انجام می‌دهد.

والحمد لله رب العالمین