واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار»     (HT-CSURE)

واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار» (HT-CSURE)

Hooshyar-Tavandar Common Subsidiary Unit for Research & Engineering
واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار»     (HT-CSURE)

واحد مشترک کمکی پژوهش و مهندسی «هوش یار-تواندار» (HT-CSURE)

Hooshyar-Tavandar Common Subsidiary Unit for Research & Engineering

هوش مصنوعی، شبکه‌های عصبی و یادگیری ماشینی چه کاری انجام می‌دهند؟

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

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

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


مطلب پیشنهادی

فرصتی برای شکفتن
سرمقاله ماهنامه شبکه ۱۹۰

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


شکل 1 - یک تصویر ابتدایی که توسط عامل انسانی رسم شده است.

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

یادگیری ماشینی با رویکرد تمرین بیشتر باعث پیشرفت کامپیوترها می‌شود
یادگیری ماشینی یکی از پراستفاده‌ترین اصطلاحاتی است که این روزها آن ‌را مشاهده می‌کنید. هرگونه تلاشی که درنهایت به یک کامپیوتر اجازه دهد به شکلی مستقل و پیشرفته کارهای خود را انجام دهد، در زمره دستاوردهای این شاخه قرار می‌گیرد. اگر در نظر داشته باشیم این اصطلاح را به شکل تخصصی‌تری توصیف کنیم، باید بگوییم یادگیری ماشینی به سامانه‌هایی اشاره دارد که در آن عملکرد یک ماشین در انجام یک وظیفه منحصراً بر پایه تجربیاتی است که از اجرای همان وظیفه به دست آورده و بهبود پیدا کرده است. شبکه‌های عصبی مثالی از یادگیری ماشینی هستند. اما این فناوری را به اشکال مختلفی می‌توان پیاده‌سازی کرد. یکی دیگر از زیرشاخه‌های یادگیری ماشینی که این روزها به‌کرات شاهد آن هستیم، یادگیری تقویتی (Reinforcement Learning) است. در یادگیری تقویتی، کامپیوتر وظیفه‌ای را انجام داده و در ادامه نتایج مورد بررسی قرار می‌گیرد. بازی شطرنج مثال خوبی در این زمینه است. یک کامپیوتر یک بازی شطرنج را به طور کامل انجام می‌دهد و درنهایت یا برنده بازی می‌شود یا در بازی شکست می‌خورد. اگر کامپیوتر برنده این بازی باشد، به مجموعه حرکاتی که در طول بازی انجام داده و به پیروزی کامپیوتر منجر شده‌اند، یک امتیاز مثبت تخصیص داده می‌شود. 


شکل 2 - شبکه عصبی تصویر را شناسایی می‌کند و اعلام می‌دارد که یک گربه است.

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

هوش مصنوعی به هر شی‌ء هوشمند اطلاق می‌شود
دقیقاً مشابه با شبکه‌های عصبی که شکلی از یادگیری ماشینی هستند، یادگیری ماشینی خود شکلی از هوش مصنوعی است. با وجود این، گروه‌بندی‌های دیگری نیز در زیر شاخه هوش مصنوعی قرار می‌گیرند، اما آن‌گونه که باید و شاید مورد توجه نیستند، به طوری که در ارتباط با بعضی از این گروه‌ها ارائه یک تعریف واحد کمی بی‌معنا به نظر می‌رسد. در حالی که در تعدادی از فیلم‌های علمی و تخیلی یک سری تصورات ذهنی را مشاهده می‌کنیم. اما واقعیت این است که در بعضی از حوزه‌های هوش مصنوعی به اندازه‌ای از پیشرفت‌ دست پیدا کرده‌ایم که تا همین چند سال پیش تقریباً تصور آن‌ را هم نمی‌کردیم. به طور مثال، نویسه‌خوانی نوری (OCR) (سرنام Optical Character Recognition) از جمله نقاط عطف هوش مصنوعی به شمار می‌رود. این فناوری در شرایطی این روزها به سهولت در اختیار ما قرار دارد که تا چند سال پیش اگر در نظر داشتید این فناوری را در اختیار داشته باشید، باید هزینه سنگینی پرداخت می‌کردید. امروزه ابتدایی‌ترین گوشی‌ها نیز قادر هستند یک سند را اسکن و آن ‌را به متن تبدیل کنند. این فناوری به اندازه‌ای پیشرفت کرده است که به‌راحتی می‌توانید گوشی خود را روی یک تصویری که به طور مثال لغات فرانسوی در آن قرار دارد نگه داشته و برنامه به طور هم‌زمان کلمات را شناسایی و آ‌ن‌ها را به زبان مورد نظر شما ترجمه می‌کند. این فناوری دیگر هیجان‌برانگیز تلقی نمی‌شود و بیشتر به عنوان یکی از وظایف ابتدایی هوش مصنوعی از آن نام برده می‌شود. دلیل این‌که چنین کار ساده‌ای در مجموعه هوش مصنوعی قرار می‌گیرد به این دلیل است که ما دو رویکرد کلی ضعیف (Weak or narrow) و قوی (Strong) را در حوزه هوش مصنوعی داریم. ضعیف در حوزه هوش مصنوعی اشاره به سامانه‌هایی دارد که برای انجام یک یا چند وظیفه خاص طراحی شده‌اند. به طور مثال، سیری اپل و Google Assistant دو برنامه کاملاً قدرتمند هستند، با وجود این در این گروه قرار می‌گیرند به دلیل این‌که دامنه فعالیت‌های آن‌ها به یک سری دستورات صوتی و پاسخ دادن به آن‌ها محدود می‌شود. در حالی که تحقیقات گسترده‌ای برای پیاده‌سازی چنین قابلیت‌هایی از سوی گوگل و اپل انجام شده است، اما باز هم به این چنین برنامه‌هایی در حوزه هوش مصنوعی weak گفته می‌شود. 

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

قوی در مقابل ضعیف قرار دارد. واژه قوی اشاره به هوش مصنوعی عمومی (AGI) (سرنام Artificial General Intelligence) دارد. در بعضی منابع از واژه هوش مصنوعی کامل (full AI) نیز استفاده می‌شود. این سامانه‌ها قادر هستند همانند انسان‌ها هر وظیفه‌ای را انجام دهند و همان‌ گونه که در مقاله شماره قبل «همزیستی مستقل انسان و هوش مصنوعی» به آن اشاره کردیم، هنوز چنین سامانه‌هایی ساخته نشده‌اند. در نتیجه نباید در آینده نزدیک در انتظار روبات‌های هوشمندی همچون Alan Tudky باشید که بتوانند تمام کارهای روزمره زندگی را انجام دهند. از آن‌جا که تقریباً تمام سامانه‌های هوشمندی که از آن‌ها استفاده می‌کنید در رده weak AI قرار دارند، هر زمان عبارت هوش مصنوعی را در ارتباط با یک برنامه مشاهده کردید، بدانید که منظور این است که برنامه فوق فقط هوشمند است. این احتمال وجود دارد که جملات یا پیشنهادهای جالب توجهی را در این ارتباط مشاهده کنید، اما باید این واقعیت را بدانید که هنوز هیچ‌یک از این برنامه‌ها قادر نیستند با هوش انسانی رقابت کنند. 

دقیقاً مشابه با شبکه‌های عصبی که شکلی از یادگیری ماشینی هستند، یادگیری ماشینی خود شکلی از هوش مصنوعی است

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

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

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

 

الگوریتم یادگیری ماشینی BPS سرعت و قدرت یادگیری ماشین را افزایش می دهد

هوش مصنوعی صد برابر هوشمندتر می‌شود

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

به گزارش ایسنا به نقل از دیجیتال ترندز، یک شرکت به نام (Gamalon)گامالون موفق به توسعه یک فناوری جدید برای یادگیری ماشینی به نام BPS شده‌ که می‌تواند سرعت روند یادگیری ماشینی را بیش از 100 برابر افزایش داده و در حال حاضر در دو برنامه تجاری آلفا به نام‌های "ساختار گامالون" (Gamalon Structure)و "همتای گامالون" (Gamalon Match) در دسترس است.

در رونمایی از این فناوری جدید، این شرکت نشان داد که چگونه BPS در مقایسه با فناوری یادگیری ماشینی"ذهن عمیق" (DeepMind)گوگل کار می‌کند.

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

اما در BPS هوش مصنوعی طوری طراحی شده تا تشخیص دهد که یک شکل توسط چه خطوط و شکل‌هایی ترسیم می‌شود. برای مثال این فناوری می‌داند که صندلی راحتی چطور با استفاده از مستطیل و خطوط خاص ترسیم می‌شود.

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

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

در حال حاضر  این فناوری به کمک شرکت‌هایی مانند Avaya و برای تصحیح نام و آدرس تنها در عرض چند دقیقه، مورد استفاده قرار می‌گیرد.

تکنیک‌های کاربردی استخراج داده‌ها با لینک LINQ (بخش اول)

دسترسی به منابع داده‌ای با LINQ
تکنیک‌های کاربردی استخراج داده‌ها با لینک (بخش اول)
لینک LINQ، سرنام Language-Integrated Query، از جمله راهکارهای مؤثر در دسترسی به داده‌ها است. امروزه، رقابت اصلی میان تولیدکنندگان ابزارهای برنامه‌نویسی بر سر دسترسی سریع و آسان به منابع داده‌ای است. لینک چارچوب مستحکمی را به وجود می‌آورد که دسترسی به اطلاعات ذخیره‌شده روی طیف گسترده‌ای از منابع داده‌ای را امکان‌پذیر می‌کند و همانند پلی برای برقراری ارتباط میان اشیا برنامه‌نویسی و داده‌ها استفاده می‌شود.

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

محاوره چیست؟
پرس‌وجو (Query) که به نام محاوره نیز شناخته می‌شود، رشته‌ای متنی است که به‌منظور بازیابی داده‌ها از یک منبع داده‌ای، به‌روزرسانی، اضافه کردن و حذف داده‌ها، از آن استفاده می‌شود. لینک با هدف ارائه یک مدل ساده از محاوره‌ها در اختیار برنامه‌نویسان قرار گرفت؛ مدلی که قادر است به منابع داده‌ای مختلف به شیوه کدنویسی یا ویزاردی متصل شود. برای این منظور مجموعه‌ای از متدهای اصلی که عملگرهای استاندارد محاوره (SQO) نام دارند، لینک را یاری می‌کنند. طیف گسترده‌ای از این متدها به شکل ترتیبی کار می‌کنند؛ به این معنی که شی مورد محاوره از نوع یکی از رابط‌های <IEnumerable<T یا <IQueryable<T  خواهد بود. شایان ذکر است IQueryable که برای محاوره‌های LINQ TO SQL استفاده می‌شود، در نهایت به IEnumerable تبدیل می‌شود. در نتیجه یک محاوره لینک همواره با اشیا سروکار دارد.

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


جدول شماره 1: پنج گروهی که نقش تدارک‌بیننده‌ها را برای لینک بازی می‌کنند.

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


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

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

static void Main(string[] args)
        {

         int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
        var myQuery =
            from num in numbers
            where (num % 2) == 0
            select num;
        foreach (int num in myQuery)
        {
            Console.Write(“{0,1} “, num);
        }
       }

فهرست شماره یک

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


شکل 1: نحوه اجرای یک محاوره در لینک

منبع داده‌ای چیست؟
در فهرست شماره یک، منبع داده‌ای یک آرایه بود که به‌طور صریح از رابط <IEnumerable<T پشتیبانی می‌کرد. این بدان معنا است که محاوره‌های لینک روی اشیایی که از رابط IEnumerable ارث‌بری داشته باشند، به‌راحتی پیاده‌سازی می‌شوند. حلقه foreach برای اجرای محاوره‌ها به IEnumebrale یا <IEnumerable<T نیاز دارد. نوع‌هایی که از رابط <IEnumerable<T یا رابط‌هایی همچون <IQueryable<T مشتق می‌شوند، نوع‌های قابل پرس‌وجو هستند. لینک می‌تواند از یک نوع قابل پرس‌و‌جو به شکل یک منبع داده مستقیم، استفاده کند. اما یک منبع داده، همیشه یک آرایه ساده نیست. اگر منبع مورد تقاضا یک بانک اطلاعاتی از نوع SQL Server باشد، تدارک‌بیننده LINQ to SQL استفاده خواهد شد. در حالی که اگر منبع داده شما بانک اطلاعاتی دیگری باشد، باید از LINQ to Dataset استفاده کنید. اگر منبع داده‌ای درخواستی شما یک فایل XML باشد، تدارک‌بیننده LINQ to XML  برای ساخت و اجرای محاوره‌ها استفاده می‌شود. 
هدف از ارائه لینک کار با داده‌ها به شیوه ساده و مستقیم است. لینک یک لایه برنامه‌نویسی انتزاعی میان زبان‌های تحت دات‌نت و منابع داده‌ای فراهم می‌آورد. شاید این سؤال پیش آید که چه لزومی دارد برای دسترسی به منابع داده‌ای از محاوره‌ها استفاده کنیم؟ در پاسخ باید گفت که هر کدام از رابط‌هایی که برای دسترسی به داده‌ها از آن‌ها استفاده می‌شود، ترکیب نحوی خاص خود یا زبانی را که از آن استفاده می‌کنید، در اختیار دارند؛ در نتیجه همواره باید با قواعد و ترکیبات نحوی هر منبع داده‌ای و زبان برنامه‌نویسی هدف آشنایی داشته باشید. در مقابل لینک این قابلیت را در اختیار شما قرار می‌دهد تا از چارچوب استانداردی برای دسترسی به داده‌های قرارگرفته در منابع داده‌ای مختلف استفاده کنید.

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

  static void Main(string[] args) { String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
            var MyQuery =
                from mystring
                    in myArray
                select mystring;
            foreach(var str in MyQuery)
            Console.WriteLine(str); }

فهرست شماره دو

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

        static void Main(string[] args)
        {

          String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
            var MyQuery =
 from mystring
 in myArray
 where mystring.Length > 3
 select mystring;

            foreach(var str in MyQuery)
            Console.WriteLine(str);
       
        }

فهرست شماره سه

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

    class Program
    {
        public class myclass
        { 
        public string Name { get; set; }
        public int Age { get; set; }
    }
        static void Main(string[] args)
        {

            myclass[] mystrings = { new myclass { Name=”Barley”, Age=8 },
                   new myclass { Name=”Boots”, Age=4 },
                   new myclass { Name=”Whiskers”, Age=1 } };

            IEnumerable<myclass> query = mystrings.OrderBy(Program => Program.Age);

            foreach (myclass mystr in query)
            {
                Console.WriteLine(“{0} - {1}”, mystr.Name, mystr.Age);
            }
       
        }
    }

 فهرست شماره چهار

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

    static void Main(string[] args)
        {

            Int32[] FirstArray= {1,2,3,4,5};
            Int32[] SecondArray = { 6,7,8,5,4};

            var MyQuery = from QueryA in FirstArray
                          from QueryB in SecondArray
                           where QueryA == QueryB
                           select new { QueryA, QueryB };

            foreach(var str in MyQuery)
            Console.WriteLine(str);
       } 

فهرست شماره پنج

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


شکل 2: نحوه پیاده‌سازی یک شرط روی محاوره

   static void Main(string[] args)
        {

           Int32[] ArrayA = {1,2,3,4};
            Int32[] ArrayB = { 1,2,3,4};
            var MyQuery =
   from QueryA in ArrayA
   from QueryB in ArrayB
   let TheSquare = QueryA * QueryB
   where TheSquare > 4
   select new { QueryA, QueryB, TheSquare };
            foreach(var str in MyQuery)
            Console.WriteLine(str); }

فهرست شماره پنج

در شماره آینده به بررسی تکنیک‌های دیگر مربوط به لینک خواهیم پرداخت.

دانلود نامحدود و رایگان کتاب و مقاله

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

لیب دی ال با دارا بودن حدود 30 میلیون جلد کتاب الکترونیکی وب سایتی منحصر به فرد برای دانلود کتاب های الکترونیکی است. کتاب ها به 9 زبان زنده دنیا بوده و تمامی مباحث علمی و فرهنگی را تحت پوشش قرار می دهند. اگر به دنبال کتابی هستید حتما به لیب دی ال سر بزنید. تمامی کتاب ها دارای لینک مستقیم هستند.

اما این همه امکانات لیب دی ال نیست. بوسیله این کتابخانه آزاد، مقالات ISI مورد نیاز خود را بدون هیچ گونه محدودیتی از حدود 30 منبع علمی دانلود نمایید. بعضی از پایگاه هایی که توسط لیب دی ال پشتیبانی می شود عبارتند از: ساینس دایرکت، اشپرینگر، وایلی، IEEE و ...

استفاده از لیب دی ال کاملا رایگان است و نیاز به عضویت ندارد. همین الان به این وب سایت سربزنید و کتابی که نیاز دارید را دانلود نمایید.


فهرست اساتید دانشگاهی فعال در زمینه های هوش مصنوعی

اساتید فعال در زمینه های هوش مصنوعی

January 21, 2017

به کوشش آقای احمدرضا حسینی Ahmad Reza Hosseiny


پردازش تصویر و بینائی ماشین

رضا صفابخشدانشگاه صنعتی امیرکبیر – دانشکده مهندسی کامپیوتر

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

پردازش صوت و گفتار

محمدمهدی همایونپوردانشگاه صنعتی امیرکبیر – دانشکده مهندسی کامپیوترسیدمحمد احدیدانشگاه صنعتی امیرکبیر – دانشکده مهندسی برقحمید شیخ زادهدانشگاه صنعتی امیرکبیر – دانشکده مهندسی برقابوالقاسم صیادیاندانشگاه صنعتی امیرکبیر – دانشکده مهندسی برقسیدعلی سیدصالحیدانشگاه صنعتی امیرکبیر – دانشکده مهندسی پزشکیفرشاد الماس گنجدانشگاه صنعتی امیرکبیر – دانشکده مهندسی پزشکیبابک ناصرشریفدانشگاه صنعتی خواجه نصیر – دانشکده مهندسی برق و کامپیوترحسین ثامتیدانشگاه صنعتی شریف – دانشکده مهندسی کامپیوترمحمدحسن ساوجیدانشگاه شهید بهشتی – دانشکده مهندسی برق و کامپیوتراحمد اکبریدانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر

شبکه های عصبی

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

پردازش، تحلیل و شناسایی الگو

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

هوش محاسباتی، رایانش نرم

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

سیستم های فازی

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

پردازش تکاملی، محاسبات زیستی

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

یادگیری ماشین

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

پردازش زبان طبیعی، ترجمه ماشینی

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

رباتیک

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

هوش مصنوعی توزیع شده

مجید نیلی احمدآبادیدانشگاه تهران – دانشکده مهندسی برق و کامپیوترغلامرضا قاسم ثانیدانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر

سیستم های چندعاملی

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

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

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

داده کاوی 

بهروز مینائیدانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر

 


  • Airoldi, Edoardo – Harvard University. Statistical and computational elements for the analysis of complex graphs and interacting dynamical systems, including yeast molecular biology and social networks. Overview of publications and activities.
  • Alkhalifa, Eshaa – University of Bahrain. Multimedia adaptable intelligent tutoring systems, student modeling, cognitive style.
  • Allen, James F. – University of Rochester. Natural language understanding, discourse, knowledge representation, common-sense reasoning and planning.
  • Bacchus, Fahiem – University of Toronto. Planning systems, temporal logic, constraint satisfaction problems and formal models.
  • Bahlmann, Claus – Albert-Ludwigs-University Freiburg, Germany, On-line handwriting recognition.
  • Beal, Matthew J. – University at Buffalo, SUNY. Nonparamtric Bayes, bioinformatics, HMMs, probablisitic sensor fusion.
  • Benjamin, D. Paul – Pace University. Problem decomposition and theory reformulation, integrated cognitive architectures for autonomous robots, distributed constraint satisfaction problems, semigroup theory and dynamical systems, category theory in software design.
  • Biermann, Alan W. – Duke University. Computational linguistics, automatic programming and inference.
  • Blum, Avrim – Carnegie Mellon University. Interests include machine learning, approximation algorithms, on-line algorithms and planning systems. Online publications and talks.
  • Brachman, Ron – Director of the Information Processing Technology Office (IPTO) at DARPA. Knowledge representation, machine learning, information retrieval, natural language processing.
  • Calvin, William H. – Theoretical neurophysiologist and author of “The Cerebral Code”, and “How Brains Think”.
  • Carberry, Sandra – University of Delaware. Department of Computer and Information Sciences Chair. Computational linguistics, dialog systems, machine learning, planning and plan recognition, medical informatics, user modeling.
  • Carpenter, Julie – University of Washington (Educational Psychology/Learning Sciences/LIFE Center). Human-robot attachment; robot-human interaction in stressful conditions, especially in dyad teamwork or collaborative situations.
  • Carreras, Xavier – Universitat Politechnica de Catalunya, PhD student, machine learning, natural language processing.
  • Carroll, John A. – University of Sussex. Natural language parsing, acquisition of lexical information from text, automatic generation of text from semantic representations.
  • Cassell, Justine – Carnegie Mellon University. Gesture and narrative language, animated agents, intonation, facial expression, computer vision.
  • Cer, Daniel – University of Colorado – Boulder. Acoustic and lexical features of emphatic speech.
  • Charniak, Eugene – Brown University. Part-of-speech tagging, probabilistic context-free grammar induction, syntactic disambiguation through word statistics, efficient syntactic parsing, and lexical resource acquisition through statistical means.
  • Chavez, Guillermo Camara – Federal University of Minas Gerais (UFMG), Brazil. Pattern recognition, invariante pattern recognition, neural networks, image content-base retrieval, digital image processing, computer vision.
  • Chiang, Yao-Yi – Geosemble Technologies. Computer vision, image processing, pattern recognition, geospatial information integration.
  • Clough, Paul D. – University of Sheffield. Information retrieval.
  • Conati, Cristina – University of British Columbia. User modeling, emotionally intelligent agents, adaptive user interfaces, Bayesian network student models.
  • Conitzer, Vincent – Carnegie Mellon School of Computer Science. Phd Student. Intersection of computer science and game theory, computer science and economics, multiagent systems, automated negotiation and contracting.
  • Cortes, Nareli Cruz – CINVESTAV-IPN. Artificial immune system optimization, genetic algorithms, evolutionary computation.
  • Danescu, Radu – Technical University of Cluj. Image processing, stereovision, intelligent vehicles.
  • De Baets, Bernard – Fuzzy Relations and Preference Modelling
  • Delord, Christophe – ENSEEIHT, France, Computer Science engineer, Artificial Intelligence (dialogue simulation, speech acts, PROLOG), Python, lexical and syntactic parsing.
  • Di Eugenio, Barbara – University of Illinois at Chicago. Interpretation and generation of instructional text, computational models of tutorial dialogue, modeling collaboration in human-human and computer-human dialogues, referential expressions.
  • Dorigo, Marco – Université Libre de Bruxelles, Belgium. Research projects in Ant algorithms, metaheuristics for combinatorial optimization, robot shaping and behavior engineering.
  • Dorst, Leo – University of Amsterdam. Applications of geometric (Clifford) algebra, exploration, reasoning with uncertainty in robotics.
  • Dror, Gideon – Academic College of Tel-Aviv-Yaffo. Text categorization, machine learning applications in bioinformatics, medicine, machine vision and high energy physics, feature selection for categorization and regression problems, artificial neural networks.
  • Elliott, Clark – DePaul University. Affective reasoning, synthetic characters, animated tutoring agents, emotion representation.
  • Faltings, Boi – Director of Artificial Intelligence Laboratory, EPFL, President of Swiss AI Society. Software agents, constraint-based reasoning, case-based reasoning.
  • Finn, Aidan – School of Computer Science and Informatics, University College Dublin. Automated information extraction using convergent boundary classification, machine learning for automatic genre classification, active learning for information extraction.
  • Fodor, János – Basics of fuzzy sets and connectives
  • Fournier-Viger, Philippe – University of Quebec at Montreal. Learning objects, cognitive modelling, virtual learning environments and intelligent tutoring systems.
  • Franklin, Stan – University of Memphis. Conscious software, intelligent agents.
  • Frasconi, Paolo – Università di Firenze. Machine learning for sequential and structured data, bioinformatics, text and natural language, pattern recognition.
  • Forbus, Kenneth – Northwestern University. Qualitative physics, spatial reasoning, cognitive simulation of analogical processing.
  • Funge, John – iKuni, Inc. Game AI, machine learning, and knowledge representation.
  • Furcy, David – University of Wisconsin Oshkosh. Heuristic search, planning and re-planning, reinforcement learning.
  • Galassi, Ugo – University of Eastern Piedmont. User profiling, hierarchical HMMs, learning regular expressions.
  • Geczy, Peter – RIKEN Brain Science Institute. Neural networks, artificial intelligence, neuroscience, fuzzy logic, rule acquisition, rule extraction from neural networks, Autonomous Connectionistic Engine (ACE), neural network resources.
  • Gini, Maria – University of Minnesota. Distributed intelligence, cooperation of miniature robots, robot navigation, multi-agent systems for e-commerce and supply-chain, economic agents.
  • Goel, Ashok K. – Georgia Tech. Knowledge-based reasoning and learning, design cognition and computing, creativity, self-adaptation.
  • Goyal, Ram Dayal – Intigma India. Data mining, natural language processing, data mining, neural networks, image processing.
  • Goel, Ashok – Ashok Goel is an Associate Professor of Computer and Cognitive Science at Georgia Institute of Technology. Research in various aspects of design includes investigation of the creative exploration involved in solving problems.
  • Gonzalez-Fierro, Miguel – University Carlos III of Madrid and King’s College London. Machine learning, deep learning, computer vision, humanoid robots and artificial intelligence in startups.
  • Guinn, Curry I. – University of North Carolina at Wilmington. Natural language processing, spoken dialog systems, conversational agents, affective computing.
  • Guvenir, H. Altay – Bilkent University. Machine learning, data mining, and computer-aided language learning.
  • Grasso, Floriana – University of Liverpool. Computational models of natural argument, affective natural language generation, conflict resolution.
  • Green, Nancy – University of North Carolina at Greensboro. Intelligent multimedia presentation systems, argumentation models, automatic generation of textual summaries of graphs, interactive narrative, conversation agents, user modeling.
  • Hagelbäck, Johan – AIGuy.org
  • Harmelen, Frank van – Vrije Universiteit, Amsterdam. Approximate reasoning, medical protocols, semantic web, specification languages for KBS.
  • Hassabis, Demis – DeepMind Technologies and now working with Google
  • Hayes-Roth, Barbara – Stanford University. Extempo Systems. Intelligent interactive characters, interactive story telling, adaptive intelligent agents.
  • Hearst, Marti – University of California at Berkeley. Data mining, information retrieval, user interfaces, web search.
  • Honavar, Vasant – Does research on machine learning, knowledge representation, data mining, big data, information integration, probabilistic models, bioinformatics, social informatics, and health informatics.
  • Honavar, Vasant – Artificial Intelligence Research Laboratory, Iowa State University.
  • Hoos, Holger H. – University of British Columbia. Preference elicitation, dynamic constraint optimization, satisfiability problems in propositional logic, computational musicology.
  • Horvitz, Eric – Microsoft Research. Decision theory, reasoning systems, user modeling, reasoning under uncertainty.
  • Jacob, Rob – Tufts University. Human-computer interaction, tangible user interfaces, virtual environments, eye-gaze tracking.
  • Kadri, Faisal – Affective computing, computational models of human emotion.
  • Katirai, Hooman – MIT / Harvard. Machine learning applied to medicine, eHealth, and Electronic Medical Records (EHR) and Patient Health Records.
  • Ketter, Wolfgang – University of Minnesota. Computer science and economics, multiagent systems, automated negotiation and contracting.
  • Koenig, Sven – University of Southern California. Decision making, situated agents, distributed agents.
  • Krogt, Roman van der – Post-doctoral researcher at the Cork Constraint Computation Centre (4C). Working on multiagent planning methods as well as scheduling for manufacturing.
  • Lambert, Lynn – Christopher Newport University. Natural language processing, planning and plan recognition, belief models, negotiation.
  • LeCun, Yann – director of Facebook AI Research
  • Lenski, Richard – Michigan State University. Interests: self-replicating computer programs that mutate at random.
  • Lisetti, Christine – Florida International University. Emotional intelligence, computational models of emotions and affective processes, affective computing.
  • Litman, Diane J. – University of Pittsburgh. Spoken dialogue for intelligent tutoring systems, reinforcement learning for optimizing spoken dialogue agents, prosodic analysis of misrecognitions and corrections, plan recognition.
  • Littman, Michael – Rutgers. Planning under uncertainty, markov decision processes, reinforcement learning, latent semantic indexing, text retrieval.
  • Liu, Hugo – MIT Media Laboratory. Philosophically motivated AI, commonsense reasoning, aesthetics and AI, assistive software agents, lexical semantics, story understanding.
  • Liu, Jundong – Ohio University. School of Electrical Engineering and Computer Science. Medical image analysis, computer vision.
  • Makris, Dimitrios – Kingston University. Senior lecturer and member of the Digital Imaging Research Centre. Research in 3D pose recovery, motion analysis and multi-camera tracking.
  • Manning, Christopher – Stanford University. Probabilistic parsing, grammar induction, text categorization and clustering, electronic dictionaries, information extraction and presentation, and linguistic typology.
  • Mantaras, Ramon Lopez de – Spanish Council for Scientific Research (CSIC) and Deputy Director of the Artificial Intelligence Research Institute of the CSIC. AI and music, qualitative approaches to landmark-based robot navigation.
  • Martin, James – University of Colorado, Boulder. Empirical metaphor research, latent semantic analysis, information retrieval, co-author of “Speech and Language Processing” with Dan Jurafsky.
  • McCoy, Kathleen – University of Delaware. Rehabilitation engineering, writing tool for American Sign Language, natural language generation, text summarization, graph summarization.
  • McGuinness, Deborah – Researcher in Knowledge Representation and Reasoning Systems. Co-designer and developer of CLASSIC and Chimaera among others. Associate Director of the Knowledge Systems Laboratory at Stanford University.
  • Mencar, Corrado – Neuro-fuzzy classifiers
  • Meila, Marina – University of Washington. Machine learning, probabilistic reasoning, graphical probability models, tree belief networks and mixtures of trees, maximum entropy discrimination, spectral clustering and image segmentation.
  • Minsky, Marvin – Growing biography, with links to many related topics. [Wikipedia]
  • Mitchell, Melanie – Currently at the Santa Fe Institute. Melanie Mitchell developed Copycat as part of her dissertation work with Douglas Hofstadter on cognitive modeling of high-level perception and analogy-making.
  • Mitrovic, Nikola – University of Zaragoza. Ph.D. student. Mobile agents, intelligent user interfaces, adaptive user interfaces, mobile applications.
  • Monz, Christof – Research interests: Computational Linguistics, Information Retrieval, Automated Deduction. Site lists on-line publications, projects, activities, and contact info.
  • Moore, Johanna D. – University of Edinburgh. Computational modeling of tutorial dialogue, multimedia explanation, integrated techniques for interpretation and generation, patient education.
  • Nebel, Bernhard – Albert-Ludwigs-Universität, Freiburg, Germany. Professor. Knowledge representation, planning, and robotics, with an emphasis on robotic soccer.
  • Ng, Andrew – is Chief Scientist at Baidu Research in Silicon Valley. In addition, he is an associate professor in the Department of Computer Science and the Department of Electrical Engineering by courtesy at Stanford University. He is chairman of the board of Coursera, an online education platform that he co-founded with Daphne Koller.
  • Norvig, Peter – Artificial Intelligence, natural language, Lisp and Java in AI. Computational Sciences Division, NASA Ames Research Center.
  • Novick, David – University of Texas at El Paso. Department of Computer Science Chair. Spoken dialog models, mediated communication, user interface development methodologies.
  • Papert, Seymour – Growing biography, with links to many related topics. [Wikipedia]
  • Pelikan, Martin – Director of the Missouri Estimation of Distribution Algorithms Laboratory (MEDAL), University of Missouri in St. Louis. Research interests: Evolutionary computation, Bayesian networks, machine learning.
  • Pellier, Damien – CRIP5 – Paris 5 Laboratory. Multi-agent systems, planning and scheduling, distributed problem solving, cooperative robotics.
  • Pennock, David M. – Yahoo! Research Labs. Electronic commerce, internet statistics, uncertain reasoning, decision theory, market approaches to group coordination, multiagent systems.
  • Picard, Rosalind – MIT. Affective computing, texture and pattern modeling, video and image browsing, retrieval and annotation.
  • Pietruszkiewicz, Wieslaw – Szczecin Technical University (Poland). Machine learning and knowledge (data) mining, optimal (kalman) filtering, expert and decision support systems.
  • Pinheiro da Silva, Paulo – Stanford University. Explanations for semantic web tasks, semantic web tools and infrastructure, model-based user interfaces, formal specification and verification of interactive systems.
  • Popple, James – Australian National University. Legal expert systems.
  • Powers, David – The Flinders University of South Australia. Natural language learning, unsupervised learning, data mining, home automation, web search.
  • Qu, Yan – Carnegie Mellon University. Information retrieval, extraction and management, natural language processing, Chinese computing, dialog and discourse processing, machine translation, cooperative human-computer interaction.
  • Raina, Rajat – Stanford University. Question answering systems, machine learning, probabilistic models, robotics.
  • Reitter, David – University of Edinburgh. Multimodal systems, natural language generation, structural priming/alignment in dialogue, rhetorical analysis.
  • Riazanov, Alexandre – Computer Scientist and Software Developer. Research interests: Automated Reasoning, Theorem Prover Vampire, Semantic Technologies, Semantic Web, Natural Language Processing.
  • Roberts, Steve – Oxford. Robotics Research Group. Machine learning, Bayesian learning, data-driven inference, signal and image processing, bioinformatics, computational and mathematical biology.
  • Roubens, Marc – Multicriteria decision aid
  • Roweis, Sam – University of Toronto. Researcher in pattern recognition, neural networks, artificial intelligence.
  • Rudnicky, Alex – Carnegie Mellon University. Speech recognition, CMU Communicator, dialog systems, speech agents.
  • Saffiotti, Alessandro – Head of the mobile robotics lab at Orebro University, Sweden. Research area: integration of cognition and physical embedding in autonomous robots.
  • Schütze, Hinrich – Stanford University. Statistical NLP, text mining, Co-author of “Foundations of Statistical Natural Language Processing” with Christopher Manning.
  • Seneff, Stephanie – MIT Laboratory for Computer Science. Phonological modelling, auditory modelling, computer speech recognition, statistical language modelling, natural language understanding and generation, discourse and dialogue modelling, and prosodic analysis.
  • Simon, Herbert A. – Late Professor at Carnegie Mellon University. One of the founders of Artificial Intelligence. Research mainly in modeling and simulation of human cognition.
  • Sims, Karl – Interviews with Karl Sims and a gallery of his works in evolutionary art and artificial evolution.
  • Smith, Ronnie W. – East Carolina University. Spoken natural language dialog systems, dialog repairs, mixed-initiative, adaptive user interfaces.
  • Spears, William M. – Research into Complex Adaptive Systems: Genetic Algorithms (Evolutionary Algorithms), Neural Networks, and Simulated Annealing. University of Wyoming.
  • Staab, Steffen – Research topics: semantic web, knowledge management, and natural language processing. List of his publications, projects, courses taught, contact information.
  • Swarup, Samarth – Virginia Tech. Cumulative (lifelong, multi-task) learning and evolution of language.
  • Szalas, Andrzej – College of Economics and Computer Science, Olsztyn, Poland. Unmanned aerial vehicles. Autonomous systems.
  • Taatgen, Niels – University of Groningen. Cognition, ACT-R, learning rules and productions.
  • Tack, Werner H. – Universität des Saarlandes. ACT-R cognitive modeling.
  • Tagliarini, Gene – University of North Carolina at Wilmington. Classification of sonar returns, fingerprint matching, image compression, and constraint satisfaction.
  • Taylor, Tim – Institute of Perception, Action and Behaviour, University of Edinburgh. Self-repairing robots; artificial evolution systems.
  • Terveen, Loren – University of Minnesota. Computer-mediated communication, social data mining, computer-supported cooperative work, recommender system.
  • Teuscher, Christof – C.V., list of awards, publications, memberships, projects, and conferences. Interests in neural networks.
  • Thornton, Chris – Collection of papers relevant to artificial creativity and intelligence.
  • Traum, David R. – USC Institute for Creative Technology. Discourse structure. Grounding in discourse. Dialog and virtual reality agents.
  • Treur, Jan – professor of Artificial Intelligence at the Vrije Universiteit in Amsterdam. Research interests include multi-agent systems, compositional modelling, temporal semantics, common sense and nonmonotonic reasoning.
  • Tunstall-Pedoe, William – Cambridge, England. Cryptic crossword solving; anagrams; search; computer chess; knowledge representation.
  • Turney, Peter D. – Interactive Information Group, National Research Council of Canada. Machine learning applied to natural language processing, lexical semantics from web mining, artificial life.
  • Valdes-Perez, Raul – Papers on scientific discovery and applications to chemistry.
  • van Delden, Sebastian – University of Central Florida. Partial parsing, natural language information retrieval systems, learning WordNet-based classification rules.
  • Vasishth, Shravan – University of Potsdam. Abductive Inference Model, Hindi sentence processing, wide-coverage theories of sentence processing.
  • Ventrella, Jeffrey – Gene Pool, Darwin Pond and papers on Artificial Life.
  • Versaggi, Matthew R. – Artificial Intelligence Engineer at Imagine One Technology & Mgt LTD.
  • Vyas, Amrish – University of Maryland at Baltimore County. Intelligent agents in eBusiness, adaptive agents.
  • Wahlster, Wolfgang – Universität des Saarlandes. Multimodal and perceptive user interfaces, user modeling, ambient intelligence, embodied conversational agents, smart navigation systems, semantic web services, and resource-adaptive cognitive technologies, VERMOBIL.
  • Weerdt, Mathijs de – Researcher in multi-agent planning at Delft University of Technology. Tutorial on multi-agent planning, list of own publications and publications related to distributed AI.
  • Wilks, Yorick – University of Sheffield. Computational pragmatics, belief modeling, lexicons, information extraction.
  • Xu, Ke – Beijing University of Aeronautics and Astronautics. Design and analysis of algorithms, phase transitions, logic programming, data mining.
  • Yager, Ronald R. – Decision support
  • Zadeh, Lotfi A. – inventor of Fuzzy Sets
  • Zillman, Marcus P. – Creator/Founder BotSpot.com, Executive Director Virtual Private Library
  • Zimmermann, Hans-Jurgen – Fuzzy O.R.
  • Zytnicki, Matthias – INRA Toulouse. Bioinformatics, weighted constraint satisfaction problems, non-coding RNAs.