بسیاری از معلوماتی که مردم دارند، چیز هایی است که نمی توان آن ها را تصویر کرد و یا توضیح داد. برای مثال یک شطرنج باز ماهر، از قرار دادن یک مهره در یک وضعیت خاص پرهیز می کند زیرا احساس می کند که این کار خطرناک است و یا یک کارشناس و منتقد هنری با نگاه کردن به یک مجسمه و یا یک نقاشی تشخیص می دهد که آن جعلی و تقلبی است. پیاده کردن چنین الگوریتم هایی با استفاده از زبان سمبلیک ممکن نبود و باید از زبان دیگری بر پایه Sub-Symbolic استفاده می شد. قبل از هر چیز باید، توضیح مختصری از این دو را به شما ارائه کنیم:
در واقع اساس کار زبان های سمبلیک بر پایه استدلال و نتیجه گیری و به طور کلی، منطق است. در این گونه زبان ها برای متغیر ها و توابع مقدار های مشخصی در نظر گرفته می شود و بدین وسیله، هر متغیر حاوی بخشی از اطلاعات برنامه و هر تابع حاوی بخشی از قوانین استنباطی برنامه است.
اما روش Sub-Symbolic تا حد زیادی متفاوت است. این روش از شبکه های عصبی برای پردازش اطلاعات استفاده می کند. این شبکه های عصبی از واحد های ورودی، واحد های پنهان و واحد های خروجی تشکیل شده اند که همگی با یکدیگر ارتباط دارند. این واحد ها گاهی سلول عصبی نیز، خطاب می شوند. همانطور که گفته شد، این سلول های عصبی با یک دیگر ارتباط دارند. اما چیزی که باید بدانید این است که اطلاعات در بین این ارتباطات، پردازش می شوند و بر این اساس ممکن است یک سلول عصبی در پردازش اطلاعات موثر و یا کم اثر باشد. در عوض، در شبکه های عصبی تمامی اجزا مهم تلقی می شود. چون هیچ کدام از آنها به تنهایی نمی توانند، اطلاعات را پردازش کنند ولی وقتی تمام اجزا با هم کار کنند، موجب ایجاد یک عملکرد هوشمند می شوند.
برای این که این روش را بهتر درک کنید، به این مثال توجه نمایید: یک مورچه تنها را در نظر بگیرید، طبعا نه کاری می تواند بکند و نه اثری دارد، اما وقتی مجموعه ای از این مورچه ها جمع می شوند و یک کلونی را تشکیل می دهند، آنگاه جامعه ای از آنها درست می شود که در کلیت، هوشمند و موثر است، به طوری که حتی ما هم با دانستن راز های زندگی جمعی مورچه ها، به فکر فرو می رویم! همین کار را هم می توان با شبکه های عصبي انجام داد و يک شبه مغز را ايجاد کرد.
- برنامه ریزی:
موجودات و به طور کلی، چیز های هوشمند، باید بتوانند هدف هایی را برای خود تعیین کرده و به آنها دست یابند. برای این کار اولا لازم است که تصوری از آینده خود داشته باشیم. یعنی وضع کنونی هدف مورد نظر را در نظر بگیریم و پیش بینی کنیم که تصمیماتی که خواهیم گرفت، چگونه می تواند بر آن تاثیر بگزارد. پس از این کار باید، برای رسیدن به بهترین نتیجه؛ از بین گزینه هایی که داریم، بهترین و سودمند ترین آنها را انتخاب نماییم.
پس تصمیم گیری و برنامه ریزی از این روش، کاری است که بدون هوشمندی، نمی توان آن را انجام داد و فقط موجودات هوشمند از پس آن بر می آیند!
در مسائل کلاسیکی که در مورد برنامه ریزی وجود داشت، عامل هوشمند می توانست فرض کند که تنها یک چیز (هدف مورد نظر) در جهان فعال است و احتمالا می توان نتیجه آن را تغییر داد. بنا بر این هدف مورد نظر تعیین می شد و برای آن راه حل هایی ارائه می گردید. همچنین عامل هوشمند - که میتواند برنامه و یا هر چیز دیگری باشد – به طور مرتب و دائمی چک می کرد که پیشگویی هایش درست باشد و اگر اینطور نبود، راه حل مورد نظر برای هدفش را تغییر می داد.
در این مورد می توانید یک روبوت را در نظر بگیرید که می خواهد از یک مسیر مارپیچ عبور نماید. این روبوت ابتدا هر یک از این مسیر ها را امتحان می کند و اگر هر کدام از آنها به بن بست، بر خورد، آن را به حافظه می سپارد تا دوباره تکرارش نکند و این عمل را آنقدر ادامه می دهد که راه خودش را بیابد! ( این يک تعریف بسيار ساده بود)
- یادگیری:
ایجاد امکان یادگیری برای ماشین ها، همواره از پژوهش های اصلی در زمینه ی هوش مصنوعی بوده است. یادگیری بدون نظارت: قابلیت یادگیری الگو ها، از اطلاعات ورودی را فراهم میکند. یادگیری نظارت شده هم، می تواند هردو امکان: طبقه بندی و عبرت عددی را ایجاد کند.
طبقه بندی این امکان را می دهد که کامپیوتر بتواند تشخیص دهد که چه چیز هایی را می توان در یک گروه خاص گنجاند. عبرت عددی (Regression takes) نیز به این صورت عمل می کند که بعد از دادن چیز هایی به عنوان ورودی به کامپیوتر و مشخص کردن خروجی دقیق آنها، کامپیوتر می تواند روابط بین ورودی و خروجی را کشف کرده و الگوریتم ها و توابع پیوسته ای را برای آنها تعیین کند. این روش برای به وجود آوردن الگوریتم های بسیار پیچیده، مفید خواهد بود.
اجازه دهید تا در این مورد مثالی بزنیم: وقتی در حال رانندگی هستید و به عابران پیاده نگاه می کنید، می توانید تا حد زیادی تشخیص دهید که آنها قصد چه کاری را دارند. مثلا می خواهند از خیابان رد شوند یا این که تاکسی بگیرند و یا این که فقط سر جای خود ایستاده اند. خب، این کار برای من و شما نسبتا ساده است اما اساسا برای نوشتن الگوریتم آن برای کامپیوتر، از دست یک انسان کاری ساخته نیست. با استفاده از روش عبرت عددی می توان با روش های خاص این مورد را با مثال های زیادی به کامپیوتر و برنامه ی مربوطه نشان داد و به تدریج الگوریتم مورد نیاز را تحویل گرفت.
اما چیزی که باید هم اکنون به آن اشاره کرد، عملیات تقویت یادگیری است. این کار به این صورت انجام می پذیرد که تئوری تصمیم گیری کامپیوتر آنالیز شده و برداشت های سودمند آن تئوری، مورد تاکید قرار می گیرند. در واقع کار های درست با تشویق (به صورت اولویت دادن) و کار های غلط با تنبیه (به صورت امتیاز منفی) پاسخ داده می شوند و به همین خاطر یادگیری کامپیوتر به طور مرتب بهبود می یابد.
یادداشت: آنالیز الگوریتم های یادگیری ماشین ها، شاخه ای از علوم نظری کامپیوتر است که با نام تئوری یادگیری کامپیوتری شناخته می شود.
در واقع اساس کار زبان های سمبلیک بر پایه استدلال و نتیجه گیری و به طور کلی، منطق است. در این گونه زبان ها برای متغیر ها و توابع مقدار های مشخصی در نظر گرفته می شود و بدین وسیله، هر متغیر حاوی بخشی از اطلاعات برنامه و هر تابع حاوی بخشی از قوانین استنباطی برنامه است.
اما روش Sub-Symbolic تا حد زیادی متفاوت است. این روش از شبکه های عصبی برای پردازش اطلاعات استفاده می کند. این شبکه های عصبی از واحد های ورودی، واحد های پنهان و واحد های خروجی تشکیل شده اند که همگی با یکدیگر ارتباط دارند. این واحد ها گاهی سلول عصبی نیز، خطاب می شوند. همانطور که گفته شد، این سلول های عصبی با یک دیگر ارتباط دارند. اما چیزی که باید بدانید این است که اطلاعات در بین این ارتباطات، پردازش می شوند و بر این اساس ممکن است یک سلول عصبی در پردازش اطلاعات موثر و یا کم اثر باشد. در عوض، در شبکه های عصبی تمامی اجزا مهم تلقی می شود. چون هیچ کدام از آنها به تنهایی نمی توانند، اطلاعات را پردازش کنند ولی وقتی تمام اجزا با هم کار کنند، موجب ایجاد یک عملکرد هوشمند می شوند.
برای این که این روش را بهتر درک کنید، به این مثال توجه نمایید: یک مورچه تنها را در نظر بگیرید، طبعا نه کاری می تواند بکند و نه اثری دارد، اما وقتی مجموعه ای از این مورچه ها جمع می شوند و یک کلونی را تشکیل می دهند، آنگاه جامعه ای از آنها درست می شود که در کلیت، هوشمند و موثر است، به طوری که حتی ما هم با دانستن راز های زندگی جمعی مورچه ها، به فکر فرو می رویم! همین کار را هم می توان با شبکه های عصبي انجام داد و يک شبه مغز را ايجاد کرد.
- برنامه ریزی:
موجودات و به طور کلی، چیز های هوشمند، باید بتوانند هدف هایی را برای خود تعیین کرده و به آنها دست یابند. برای این کار اولا لازم است که تصوری از آینده خود داشته باشیم. یعنی وضع کنونی هدف مورد نظر را در نظر بگیریم و پیش بینی کنیم که تصمیماتی که خواهیم گرفت، چگونه می تواند بر آن تاثیر بگزارد. پس از این کار باید، برای رسیدن به بهترین نتیجه؛ از بین گزینه هایی که داریم، بهترین و سودمند ترین آنها را انتخاب نماییم.
پس تصمیم گیری و برنامه ریزی از این روش، کاری است که بدون هوشمندی، نمی توان آن را انجام داد و فقط موجودات هوشمند از پس آن بر می آیند!
در مسائل کلاسیکی که در مورد برنامه ریزی وجود داشت، عامل هوشمند می توانست فرض کند که تنها یک چیز (هدف مورد نظر) در جهان فعال است و احتمالا می توان نتیجه آن را تغییر داد. بنا بر این هدف مورد نظر تعیین می شد و برای آن راه حل هایی ارائه می گردید. همچنین عامل هوشمند - که میتواند برنامه و یا هر چیز دیگری باشد – به طور مرتب و دائمی چک می کرد که پیشگویی هایش درست باشد و اگر اینطور نبود، راه حل مورد نظر برای هدفش را تغییر می داد.
در این مورد می توانید یک روبوت را در نظر بگیرید که می خواهد از یک مسیر مارپیچ عبور نماید. این روبوت ابتدا هر یک از این مسیر ها را امتحان می کند و اگر هر کدام از آنها به بن بست، بر خورد، آن را به حافظه می سپارد تا دوباره تکرارش نکند و این عمل را آنقدر ادامه می دهد که راه خودش را بیابد! ( این يک تعریف بسيار ساده بود)
- یادگیری:
ایجاد امکان یادگیری برای ماشین ها، همواره از پژوهش های اصلی در زمینه ی هوش مصنوعی بوده است. یادگیری بدون نظارت: قابلیت یادگیری الگو ها، از اطلاعات ورودی را فراهم میکند. یادگیری نظارت شده هم، می تواند هردو امکان: طبقه بندی و عبرت عددی را ایجاد کند.
طبقه بندی این امکان را می دهد که کامپیوتر بتواند تشخیص دهد که چه چیز هایی را می توان در یک گروه خاص گنجاند. عبرت عددی (Regression takes) نیز به این صورت عمل می کند که بعد از دادن چیز هایی به عنوان ورودی به کامپیوتر و مشخص کردن خروجی دقیق آنها، کامپیوتر می تواند روابط بین ورودی و خروجی را کشف کرده و الگوریتم ها و توابع پیوسته ای را برای آنها تعیین کند. این روش برای به وجود آوردن الگوریتم های بسیار پیچیده، مفید خواهد بود.
اجازه دهید تا در این مورد مثالی بزنیم: وقتی در حال رانندگی هستید و به عابران پیاده نگاه می کنید، می توانید تا حد زیادی تشخیص دهید که آنها قصد چه کاری را دارند. مثلا می خواهند از خیابان رد شوند یا این که تاکسی بگیرند و یا این که فقط سر جای خود ایستاده اند. خب، این کار برای من و شما نسبتا ساده است اما اساسا برای نوشتن الگوریتم آن برای کامپیوتر، از دست یک انسان کاری ساخته نیست. با استفاده از روش عبرت عددی می توان با روش های خاص این مورد را با مثال های زیادی به کامپیوتر و برنامه ی مربوطه نشان داد و به تدریج الگوریتم مورد نیاز را تحویل گرفت.
اما چیزی که باید هم اکنون به آن اشاره کرد، عملیات تقویت یادگیری است. این کار به این صورت انجام می پذیرد که تئوری تصمیم گیری کامپیوتر آنالیز شده و برداشت های سودمند آن تئوری، مورد تاکید قرار می گیرند. در واقع کار های درست با تشویق (به صورت اولویت دادن) و کار های غلط با تنبیه (به صورت امتیاز منفی) پاسخ داده می شوند و به همین خاطر یادگیری کامپیوتر به طور مرتب بهبود می یابد.
یادداشت: آنالیز الگوریتم های یادگیری ماشین ها، شاخه ای از علوم نظری کامپیوتر است که با نام تئوری یادگیری کامپیوتری شناخته می شود.