جایگاه لیسپ و پرولاگ در عصر مدرن هوش مصنوعی

لیسپ هنگامی که اعتقاد داشتیم هوش مصنوعی دستکاری نماد هست و مواردی مانند هستی شناسی نمادین، مزیت داشت.

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

دستکاری نمادین به صورت پیش پا افتاده در ++ C یا جاوا اجرا نمی شود زیرا آنها با این هدف طراحی نشده اند.

وقتی ما به هوش مصنوعی به عنوان منطق اعتقاد داشتیم ، پرولاگ یک مزیت داشت و یک عملیات پیچیده مبتنی بر استدلال و منطق استقرایی را یکپارچه سازی میکرد.

اما هیچ یک از اینها هیچ مزیتی برای هیچ یک از مدعیان فعلی هوش مصنوعی ندارند:
هوش مصنوعی آماری مربوط به شبکه های عصبی از همه نوع و عملکردش در مورد پیوند دادن اقیانوس گره های متصل به هم است .

در این نوع از هوش مصنوعی کاربست اصلی مان استفاده از روشهای آماری به عنوان پایه دانش است و این نیاز به استفاده از بسیاری از زبانها ی بهینه شده برای کاهش زمان محاسبه دارد.

روش های مدلسازی آن (انواع مختلف یادگیری ماشین ، روش های تکاملی و غیره) نیز بسیار ساده هستند.
و پیچیدگی ها صرفا ظاهری هستند ، بنابراین لازم نیست نگران آن باشیم. یک پایه ساده مینویسیم که بتواند آنچه را که باید یاد بگیرد بیاموزد. در هر یک از این موارد ، هر زبان عمومی هدف را انجام می دهد.

یک نظر سنجی

آیا در دنیای مدرن هوش مصنوعی با رویکرد های مدرن و ساده تر آن جایی برای گویش های لیسپی و پرولاگ باقی خواهد ماند؟

اولا منبع مطلب رو هم ذکر کنید.
دوما:

یعنی چی؟

غلطه. لیسپ بر پایه‌ی Lambda Calculus هست. بر پایه‌ی ریاضیات. اختراع نشده، کشف شده. از زمان بیگ بنگ بوده، ظهور پیدا نکرده.
تایم‌لاینش هم ربط خاصی به پیدایش هوش مصنوعی نداره. هدف lisp هم اصلا این نبود که یه زبان بشه.
اینکه اسم لیسپ و هوش مصنوعی درکنار هم میاد به خاطر اینه که سازنده‌ی lisp، یکی از فعالان هوش مصنوعی بود و مسلما دانشجوهاش تمرینهاشون رو با lisp انجام میدادن.

غلطه

غلطه

اگه منظور از «دستکاری نمادین»، mutability هست، کاملا غلطه چون اصلا این زبانها imperative هستن و هدفشون «تغییر دادن دیتا، تا وقتی به جواب برسیم» هست.

:neutral_face:

اتفاقا بسیار پیچیدست و بیش‌از‌حد پیچیدست.

دقیقا برعکس. ظاهر سادست. شما با ۱۰خط کد پایتون میتونید یه شبکه‌ی عصبی درست کنید.

این متنها از google translate میاد؟

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

تاپیک‌های این مدلی توی stackoverflow فلگ میخورن، پس با اجازه منم اینجا فلگ میکنم تا بررسی بشه.

1 Likes

نخیر از جایی کپی نشده ، برداشت های خودم از صفحاتی بود که مطالعه کردم،

علت موضع گیری و سرکوب شما رو متوجه نشدم!

هر طور راحتید فلگ کنید

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

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

اتفاقا فکر میکنم منم منظورم رو رسوندم که پیاده سازی و مدلسازی چنین هوش مصنوعی ساده ست

شما لطفا توضیح بده مشکل اون پست چی بود؟

شبکه‌های عصبی، به این شکل ساخته میشن:
یه سری if و else میریزیم اونجا، اینا با یه عدد اعشاری که بهش میگیم weight به هم ارتباط دارن. این weight ها رو میذاریم در اختیار کامپیوتر که همینجوری واسه خودش بالا پایین کنه ببینه یه پترنی از input به output تشکیل میشه یا نه.
بعد از اینکه مثلا یک ملیون نمونه رو «بررسی» کرد، بهمون میگه «اوکی. تموم شد.»
و این در حالیه که خودشم نمیدونه چیکار کرده و این مدلی که به دست آورده چیه.
پس بهش میگم «حماقت مصنوعی»

و ما تقریبا هیچ راهی نداریم برای بررسی صحت عملکرد اون مدلی که ساخته شده.
چرا؟ چون گفتیم «من یه چیزی میخوام که اعداد ۰ تا ۹ رو توی تصویر شناسایی کنه و میخوام امروز تموم بشه و نمیخوام پول خرج کنم ۴نفر ریاضیدان و متخصص پردازش تصویر و… (به اختصار: domain expert) استخدام کنم تا برای این مشکل یه الگوریتم طراحی کنن و بعد چندتا برنامه‌نویس استخدام کنم تا اون الگوریتم رو پیاده کنن بعدش بشینن بهینه‌سازی کنن.
پس من بهش میگم «تنبلی طبیعی»

شما هرجا «اشتباه» من رو متوجه نشدید، ازم بخواید براتون توضیح بدم.

اولا که شما گفتید:

این اشتباهه. این مدلها واقعا پیچیده هستن. به طوری که بعد از ساخته شدن، نمیشه ازشون سردرآورد.
و انجام دادنشون بسیار بسیار راحته، به طوری که با کمترین میزان دانش از برنامه‌نویسی و یا ریاضیات، میتونید یه لایبرری python صدا بزنید و یه Neural Network درست کنید با چندخط کد.

درضمن باید خدمتتون یادآوری کنم که «ساده» و «راحت» به مترادف نیستن.
«ساده» منظور simplicity هست. به عنوان مثال: کلوژر شاید راحت نباشه، ولی ساده‌ترین زبانیه که من میشناسم.

من توی اون متن که لطف کردید اسکرین‌شات گرفتید (میتونستید خود اون متن رو reply کنید اینجا) گفتم «شبکه‌های عصبی، راحته» و در ادامه باید میگفتم «خروجیش تقریبیه و هیچوقت نمیتونه قطعی باشه. هیچوقت نمیتونه با قطعیت حرف بزنه» و در ادامش گفتم «expert system، دقیق هست» و در ادامش باید میگفتم «نسبتا خیلی سادست! چون بعد از درست کردنش، هر قسمتش رو میشه جداگانه دید و خوند و تغییر داد و بهینه یا فیکس کرد»


فکر میکنم گفتم:

1 Likes

فکر میکنم قبلا هم گفتم که با مطالعه کردن به جایی نمیرسید. باید خودتون با اون چیزها کار کنید.
من موضع میگیرم چون با این سیستم‌ها کار کردم.

مسلما هرکسی همونطور که راحته فکر میکنه. بهش میگن آزادی اندیشه.

1 Likes

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

و ان پیچیدگی بعلت اینکه نمیدونیم سیستم چطور کار میکنه مد نظرم نبود
) هر چندبازم این دلیلی نیست که شما بخاطرش اینجوری یک فناوری رو بکوبید)

در ضمن نمیدانم مشکل شما با تکنولوژی ماشین لرنینگ چی هست که یک فناوری خیلی پرکاربرد رو اینطور صدا میکنید( حماقت مصنوعی)
و دست اندرکاران این فناوری رو افراد برنامه نویس تنبل میخوانید

این سخن گویی از روی تعصب و عصبانیت بی خود و بی جهت هست
این فناوری فعلا که میبینیم خیلی خوب جواب داده و خیلی هم بسیار بسیار در حال حاضر در صنعت پرکاربرد بوده
چه درحوزه علوم اعصاب شناختی و کدینگ عصبی
و دیپ لرنینگ و چه در زمینه nlp و و غیره

برای مشکلاتش هم قطعا درآینده راهکار هایی خواهد امد که خود برنامه نویس بتونه عملکرد و تصمیمات سیستمرو توجیه کنه

دوست عزیز جبهه گیری؟

اینکه یک پست مینویسی و درونش دنبال نظرات دیگرانی اسمش آیا جبهه گیری هست؟؟

یا اینکه در مقابل پست بنده جای کلمه دستکاری نماد بفرمایید بگویید غلطه ! ما فقط کدی مینویسیم که کد بزنه !

اگر این اسمش دستکاری دیتا / نماد نیست . پس چیه؟
آیا با واژگان پارسی آشنایید ؟؟ واژه نماد چه معنی میدهد؟

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

در این مورد هم فکر میکنم خودتون جواب خودتون رو دادید

آزادی اندیشه!

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

لزوما نمیتونید منو مجبور کنید که حتما زیر نظرات منم شروع ب بحث کنم
در ضمن اون پستم هیچ مشکلی نداشت و از جایی کپی نکرده بودم که منبعشو ذکر کنم

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

دست‌اندرکاران این فناوری، ریاضیدان‌هایی هستن که این مدل رو طراحی کردن. دستشونم درد نکنه واقعا حرکت بزرگی انجام دادن.
ولی دنیای برنامه‌نویسی به این سمت رفته که برنامه‌نویس دنبال اینه که یه لایبرری صدا بزنه کارش راه بیفته. نمیرن فرمولها و منطق ریاضی پشت machine learning رو یاد بگیرن. صرفا دنبال یه tutorial توی youtube هستن که یه دیتاست هم برای تست بهشون داده باشه، دانلود کنن، یه لایبرری صدا بزنن، اون دیتاست رو به عنوان input از هارد بخونن و بقیش رو به بسپارن به دست تقدیر.


فکر کنم توی اون مطلبی که ازش اسکرین‌شات گذاشتید، نوشته باشم که اعتماد ما به Neural Networks چطوری داره بهمون صدمه میزنه.

خب این برمیگرده به همون داستان Hype Chart. چون یه چیزی ترند شده دلیل نمیشه خوب باشه. مخصوصا تو دنیای کامپیوتر!
به زبان برنده‌ی نوبل ادبیات:

“If 50 million people say a foolish thing, it is still a foolish thing.”
― Anatole France

بالاپایین پریدن من برای گسترش آگاهیه.

بله. راهکارهای جایگزین!
هدف ما «ساخت هوش مصنوعی» هست. نه «ساخت هوش مصنوعی به روش Neural Networks».


خیر. نوشتن یه تاپیک و پرسش نظر دیگران اشتباه نیست، جبهه‌گیری هم نیست.
متنی که نوشتید جبهه‌گیری داره. من هم گفتم «مطلب پر از جبهه‌گیری …» ولی شما موقع reply کلمه‌ی «مطلب» رو highlight نکرده بودید، اینجا نشون داده نمیشه.

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

ما چه نمادی رو داریم پردازش میکنیم؟ چه نمادی رو داریم دستکاری میکنیم؟

اولا که کلمه‌ی «فقط» اینجا اضافیه. ما کارهای دیگه‌ای هم میکنیم.
دوما macroهای لیسپ، چه ربطی به هوش مصنوعی دارن؟ این‌هم یه ابزار هست درکنار ابزارهای دیگه که در لیسپ یا زبانهای دیگه وجود داره، میتونه بهمون در ساختن یک expert system کمک کنه.

خیر. ما در لیسپ، کدهای Pure Functional مینویسیم که هیچ چیزی رو دستکاری نمیکنن (مگر در تابع‌هایی که بخوایم یه ورودی از کاربر یا دیتابیس یا… بگیریم یا یه خروجی بهش نشون بدیم)

درضمن شما دیتا و نماد رو کنار هم استفاده کردید. فکر میکنم منظور شما از نماد، همون symbol باشه.
پس خیر! data و symbol با هم یکی نیستن. دیتا اون اطلاعاتیه که از یه جایی اومده و symbol اون برچسبیه که به اون دیتا میزنیم که بتونیم راحت باهاش کار کنیم. مثل برچسب‌های رنگی-رنگی که روی یه سری پرونده توی کشوی میزمون میزنیم.

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

به عنوان مثال شما نمیتونید Free Software رو به فارسی ترجمه کنید بدون اینکه ۵۰٪ از مفهوم کلمه‌ی free رو از دست بدید.
به همین خاطر وقتی مجبور به ترجمه هستن، به جای free از «آزاد» استفاده میکنن تا حداقل اون ۵۰٪ که مهمتر هست، حفظ بشه.


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


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

خب نظر من اینه که بقیه‌ی سطرهایی که نوشتید، برداشت اشتباه شما از متنهای یک نفر دیگه هستن.

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

اگه اشتباه برداشت کردم، معذرت میخوام. مغز من هم یه شبکه‌ی عصبیه که نمیشه دیباگش کرد.

1 Likes