نمایش دانش
متخصصان هوش مصنوعی انواع سیستمها را با استفاده از برنامههای معمول كامپیوتری و تفاوت قایلشدن بین پردازش اطلاعات (Information) و پـردازش دانـش(Knowledge)، شناسایی میكنند. اینكار منجر به ایجاد سیستمهای مبتنی بر دانش كه كــاربــرد بـسـیــار زیــادی در هــوش مـصنـوعـی دارد میشود.
ربات نیاز به داشتن اطلاعات یا دانش از دنیای اطـراف خـود دارد تـا سیستم بیناییاش به درستی عمل كند. به طور خلاصه بعضی تكنیكهایی كه تــوســط مـهـنــدســان دانـش (Knowledgc Engineer) برای نمایش و پردازش این اطلاعات بهكار میرود آزمایش میشود.
بــرای اسـتـفــاده از تـكـنیـك همسـانسـازی الگـو (Template Matching) نـیـاز به ذخیره مقادیر بسیار زیـادی از دانش در رابطه با هر مرحله موجود در دنیای ربات وجود دارد. با استفاده از قوانین میتوان استفاده از این اطلاعات را از بین برد و دیگر نیازی به آنهـا حـس نمیشود. مثلا در مورد یك صندلی، بـهجـای ذخـیـره یـك صـنـدلـی از تـعـدادی زوایـا و اندازهها میتوان اطلاعاتی راجع به برخی خواص و ظواهر صندلی نظیر جنس، دستهها، پایهها و ... كه یــك سـیـسـتــم مـبـتنـی بـر دانـش از آنهـا بـه منظـور تشخیص صندلی استفاده میكند، ذخیره كرد. یك صـنــدلــی دارای چهـار پـایـه، یـك نشیمنگـاه و یـك تكیهگاه است.
همانطور كه اشاره شد، عملیات زیادی باید به مـنـظـور پـردازش اطـلاعـات تصویری انجام شود. تصاویر غالبا دارای نویز هستند كه باعث خرابی و تـحـریـفـشـان مـیشـود. هر چند این مشكل چندان حادی برای سیستم بینایی انسان به حساب نمیآید امـا بـرای سـیـسـتـمهـای بـیـنـایـی مـاشین این نویزها بـهطـور كـامـل باید فیلتر و پاكسازی شوند كه این عمل با استفاده از تعدادی الگوریتم انجام میشود.
سـیـسـتـمهـای بـیـنایی اولیه روز به روز در حال گـسـتـرش هستند و هر روز كاربرد جدیدی برای آنهـا یـافـت مـیشـود. بـا تـوسـعـه ایـن سـیـسـتـمها، كـاربـردهـایـی بـرای سـایـر مـحـیـطهـا نـظـیـر تـوسـعه پـردازش نـیـز یـافـت مـیشـود. سـیـسـتمهای بینایی مصنوعی از كاربردهای پزشكی و نظامی گرفته تا كـاربردهای ساده و معمول روزمره مورد استفاده هــســتــنـــد و ایـــن شـــاخـــه از هـــوش مــصـنــوعــی از كـاربـردیتـریـن شـاخـههـا اسـت كـه هـنـوز مـسـایل حلنشده زیادی در خود دارد.
پردازش زبانهای طبیعی (NLP)
پـــــردازش زبـــــانهـــــای طـــبـــیــعــــی بــــه عــنــــوان زیـرمـجـمـوعـهای از هـوش مـصـنـوعـی، مـیتـوانـد توصیهها و بیانات را با استفاده از زبانی كه فرد به طـور طبیعی در مكالمات روزمره به كار میبرد، بفهمد و مورد پردازش قرار دهد. به طوركلی نحوه كـار ایـن شاخه از هوش مصنوعی این است كه زبـانهـای طبیعـی انسان را تقلید میكند. در این میان، پیچیدگی انسان از بعد روانشناسی بر روی ارتباط متعامل تاثیر میگذارد.
در پردازشزبان هایطبیعی، انسانو كامپیوتر ارتباطیكاملا نزدیك با یكدیگر دارند. كامپیوتر از لحاظ روانی در مغز انسان جای داده می شود. بدین ترتیب یك سیستم خلاق شكل می گیرد كه انسان نقش سازمان دهنده اصلی آن را برعهده دارد. اگر چه هنوز موانع روانشناختی و زبانشناختی بسیاری بر سر راه سیستم های محاوره ای وجود دارد. اما چشـم انـدازهـای پیشـرفـت آن هـا یقینـا نـویدبخش اســت. در حـقـیـقــت، تــوقعـات یكسـان از محـاوره انـسـان- مـاشـیـن و مـحـاوره انـسـان- انـسان، معقول نیست.
تكنیكها و زبانهای برنامه نویسی هوش مصنوعی
عـمـلـكـرد اولـیـه بـرنامه نویسی هوش مصنوعی ایـجـاد سـاخـتـار كـنـتـرلـی مـورد لزوم برای محاسبه سـمـبـولـیـك اسـت زبان های برنامه نویسی LISP، PROLOG علاوه بر اینكه از مهمترین زبان های مورد اسـتـفـاده در هـوش مصنوعی هستند خصوصیات نحوی و معنایی آن ها باعث شده كه آن ها شیوهها و راه حلهای قوی برای حل مسئله ارایه كنند. تاثیر قابل توجه این زبان ها بر روی توسعه AI از جمله تـوانـایـیهـای آن هـا بـه عنوان ابزارهای فكركردن اسـت. در حـقـیقت همانطور كه هوش مصنوعی مراحل رشد خود را طی میكند زبان های LISPو PROLOG بـیشتر مطرح میشوند این زبان ها كار خــود را در مـحــدوده تـوسـعـه سـیـسـتـمهـای AI در صـنـعــت و دانـشـگــاههــا دنـبــال مــیكـنـنـد و طبیعتـا اطلاعات در مورد این زبان ها به عنوان بخشی از مهارت هر برنامه نویس AI است.
PROLOG یك زبان برنامه نویسی منطقی است. یـك بـرنـامـه مـنطقی دارای یك سری ویژگی های قانون و منطق است. در حقیقت خود این نام از برنامه نـویـسـی PRO در LOGIC میآید. در این زبان یك مفسر برنامه را بر اساس یك منطق مینویسد. ایده اســتــفـــاده تـــوصــیــفــی مـحــاسـبــه اولـیــه بــرای بـیــان خـصـوصـیـات حـل مـسـئـله یكی از محوریت های مشاركت PROLOG است كه برای علم كامپیوتر به طوركلی و به طور خاص برای زبان برنامه نویسی هوشمند مورد استفاده قرار میگیرند .
الگوریتم ژنتیك
الــگـــوریــتـــمهـــای ژنــتــیــك، بــه عـنــوان یـكــی از راهحلهای یافتن جواب مسئله در بین روشهای مرسوم در هوش مصنوعی مطرح است. در حقیقت با این روش می توان در فضای حالت مسئله حركتی سـریـعتر برای یافتن جوابهای احتمالی داشت؛ یـعـنی می توان با عدم بسط دادن كلیه حالات، به جوابهای مورد نظر رسید.
در جـهـان اطـراف هـمـه ارگـانیزمهای حیاتی از ساختارهای قانونمندی تشكیل شدهاند. همه این ارگـانیـزمهـا از بلـوكهای پایهای از زندگی به نام سلول تشكیل به وجود آمدهاند. قوانین ذكر شده در قالب ژنها به صورت كد شده در هر ارگانیزم وجود دارند. از به هم وصل شدن این ژنها، رشتههایی طـولانـی بـه نـام كـروموزوم تولید میشود. هر ژن نمایانگر یكی از خصوصیات آن ارگانیزم است.
مانند رنگ چشم یا رنگ مو و البته هر ژن میتواند دارای مقادیر مختلفی باشد. مثلا در رابطه با رنگ چشـم مـیتـواند دارای مقادیری متناظر با مشكی، قـهـوهای و آبـی و سبـز و... بـاشـد. هنگـامـی كـه دو ارگـانـیـزم بـه تـولـیـد مـثـل مـیپـردازنـد، در حـقـیقت ژنهای خود را با یكدیگر تركیب میكنند. بدین صورت كه ارگانیزم تولید شده كه در این متن از این به بعد آن را نوزاد مینامند، دارای نیمی از ژنهای یك والد و نیم دیگر از والد دیگری است. این عمل را تـركـیـب مـیگـویـند. گاهی اوقات بعضی از ژنها دارای جـهـش مـیشـونـد. ایـن جـهـش تـغـیـیـری در سـاختار كروموزوم ایجاد نمیكند، اما با توجه به اینكه مقدار جدیدی به یك ژن تخصیص مییابد، موجب بروز خصوصیت جدیدی میشود. از این اتفاق با نام جهش یاد میشود.
برای استفاده از الگوریتم ژنتیك در برنامهها ابتدا باید راهی بیابید تا حالات جواب مسئلهخود را به صورت كد شده در قالب رشتهای از اعداد صحیح یا در فرم كلاسیكتر آن به صورت رشتهای از بیتها نـمــایــش دهـیــد (هــر رشـتــه از بـیـتهـا معـادل یـك كروموزوم یا یك ارگانیزم طبیعی است و هدف این است كه به ارگانیزم بهتری، یعنی كرومزوم بهتری دست پیدا كند.) بدین ترتیب جوابها به یكی از اشكال زیر خواهد بود.
1011011010000101011111110
یا 1264196352478923455548216
بـرای شـروع فـعـالـیـت الـگـوریـتم ژنتیك نیاز به جمعیتی از كروموزومها به صورت تصادفی است. یعنی در ابتدا به عنوان قدم اول، تعدادی كروموزوم بــه صــورت تـصـادفـی ایـجـاد كـرد. فـرض كـنـیـد N كروموزوم و این N را جمعیت آغازین مینامند.
در ادامه تابعی به نام تابع ارزش تشكیل میشود كــه ایــن تــابــع بـه عنـوان ورودی یـك كـرومـزوم را دریـافـت مـیكـنـد (یـك جـواب مسئله) و به عنوان خروجی عددی را مبتنی بر میزان بودن كرومزوم نسبت به جواب نهایی بر میگرداند. در حقیقت این تابع میزان خوب بودن جواب را مشخص میكند. بـرای همـه نمـونـههای جمعیت مقدار تابع ارزش حساب میشود.
در ادامـــه بـــه صـــورت تـصـــادفـــی دو نـمـــونــه از كرومزومها انتخاب می شود. باید توجه داشت كه سیستم به گونهای طراحی شود كه شانس انتخاب هــر كــرومــزوم مـتـنــاسـب بـا مقـدار تـابـع ارزش آن كروموزوم باشد. یعنی اگر كرومزومی دارای مقدار تـابـع ارزشـی بـهتری بود، شانس انتخاب شدن آن بیشتر باشد (بدین وسیله سعی میشود بیشتر روی پاسخهای بهتر مسئله پردازش انجام شود.)
بـعـد از انـتـخـاب دو كـرومـزوم، اكـنون نوبت به تركیب میرسد. برای انجام عمل تركیب، باید یك نقطه (نقطه شكست) در جفت كروموزوم خود را به صورت تصادفی انتخاب كند. هر كرومووزم به دو پاره تقسیم میشود و در ادامه كمی جای هر پاره از هر كروموزوم با دیگری عوض میشود.
بدین ترتیب دو كرومزوم جدید تولید میشود (دو جواب جدید.) راه دیگری نیز برای انجام عمل تركیب وجود دارد و آن انتخاب چند نقطه شكست است.
در هر حال باید یك روش انتخاب شود و در طول پروژه عمل تركیب خود را مبتنی بر آن روش انجام می دهد. بعد از انجام عملیات انتخاب و تركیب، نوبت به عمل جهش ژنها میرسد. عمل جهش باید با احتمال پایین رخ دهد. یعنی در اكثر مواقع نباید دارای جهش باشد، اما احتمال آن نیز نباید صفر باشد. بنابراین اگر كرومزوم به دست آمده از عملگر تركیب دچار جهش شود، باید یكی از بیتهای آن كه متناظر با ژنهای آن هستند، به صورت تصادفی انتخاب شود و سپس مقدار آن تغییر كند.
اكنون یك مرحله انجام می شود و یك كرومزوم جدید (جواب جدید) برای مسئله ایجاد می شود. در ادامه دو مرتبه دو كرومزوم از جمعیت اولیه انتخاب مـیشـود و هـمـه اعـمـال گـفـتـهشده روی آن انجام میشود تا كرومزوم دیگری ایجاد شود و اینكار به قـدری تـكـرار مـیشـود تـا بـه تـعداد كرومزومهای جـمـعیت اولیه، كرومزوم جدید ایجاد شود و این مجموعه كرومزوم جدید در حقیقت نسل جدید خواهند بود و اینكار به قدری ادامه داده می شود تا نسلهای بهتر و بهتری ایجاد شود و هنگامی جواب نـهـایـی بـه دسـت مـی آیـد كـه تـابـع ارزشـی ، مـقدار مطلوب را به ازای مقدار مورد نظر از كروموزوم ها برگرداند.
هوش مصنوعی؛ تشخیص و درمان
طراحی نرم افزار تشخیص بیماری ها به وسیله هوش مصنوعی
نــرمافــزار جــامــع پـشتیبـان تصمیـمگیـری در پزشكی یكی از نرمافزارهائی است كه با استفاده از هــوش مـصـنـوعـی بـه تـشـخـیـص بـیـمـاریهـا براساس علائم اقدام میكند به طوری كه كاربر بــا وارد كــردن نـشــانــههــای بـیـمـاری بـه رایـانـه، فـهـرسـتـی از بـیـمـاریهـای مـحـتـمل را مشاهده خواهد كرد.
ثبت دقیق شرح حال بیمار، تشكیل پرونده، درخواست آزمایشهای اولیه و تكمیلی، تجویز هــوشـمـنــد دارو، نـسـخــه نــویـسـی، جـسـتـجـوی اطلاعات بیماری، روش درمان، بانك اطلاعات داروهــــا، روش مــصــــرف و مــشــخـــص كـــردن عوارض جانبی داروها را از مزایای این نرم افزار است.
ایـن نـرم افـزار همچنین میتواند بیش از دو هــزار بـیـمــاری و 300 عــلائـم و نـیـز اطـلاعـات جامعی در زمینه 600 آزمایش پزشكی 130 مورد جراحی و 900 عنوان دارو را در خود ذخیره كند.
مهمترین قابلیت این نرم افزار بررسی و تشخیص همزمان1500 بیماری و 100 هزار رابط بین بیماری ها است و برای كمك بیشتر به پزشكان ده هزار صفحه از متون معتبر پزشكی ، مجلات ، مقالات و تصاویر تخصصی در این نرم افزار جمع آوری شده است.
استفاده از قابلیتهای هوش مصنوعی در تشخیص عفونت های قلبی تهدید كننده
بــا كمـك دو بـرنـامـه جـدیـد هـوش مصنـوعـی، امكـان تشخیـص عفـونـتهـای قلبـی تـهـدیـدكـنـنده حیات بیماران و همچنین درمان زخمهای باز بدون نیاز به فرآیندهای مـعـمـول و زمـانبر درمانی برای پزشكان فراهم شده است. پیشرفت حاضر در زمینه تشخیص عوارض مهلك در حالی صورت میگیرد كه به اعتقاد جامعه پزشكی، جدا از نتایج چشمگیر آن در نجات جان انسانها و اجتناب از اعمال جراحی تهاجمی و رنج آور، این پژوهش میتواند بدون نیاز به انجام آزمایشهای متعدد به صرفهجویی میلیونی هزینههای بیمارستانی در سال كمك كند.
این نرمافزار برای شناسایی بیماران دارای عفونتهای قلبی توسعه یافته بوده و این در صورتی است كه چنین عفونتهایی با نرخ مرگ و میر بین 30 تا 50 درصد، از عفونتهای بـسـیــار وخـیــم بــه شـمــار مــیرونــد. تـشـخـیــص دادن الـتـهــابــات غـشــای درونــی قـلـب (اندوكاردیتیك) یك عمل جراحی تهاجمی محسوب میشود و قصد از طراحی این نرم افزار تشخیص این عفونت بدون روانه كردن لوله كاوشی به درون مری فرد بیمار است..
تصویری كه با استفاده از داخل كردن ابزار آندوسكوپی به درون نای شخص بیمار كه با كمك دارو تسكین دهنده، گرفته میشود اصطلاحا قلبنگاری فرامری (ترانسوفاژل اندوكاردیوگرام) است كه در نوع خود فرآیندی تهاجمی و گران به حساب میآید. در واقع یك عمل 30 دقیقهای با این روش بالغ بر 2000 دلار هزینه دربر دارد و از طرفی انجام این عمل به تجهیزات فنی خاصی نیاز دارد كه بسیاری از بیمارستانها فاقد آن هستند. این در حالی است كه پزشكان می توانند به جای وارد كردن لولههای پزشكی، به وارد كردن دادههای لازم به رایانه و تحلیل آن ها بپردازند. در این شیوه عمل، پزشكان ابتدا با ثبت دادههایی از جمله ضربان قلب، فشار خون، شمارش گلبولهای سفید خون، حضور ادواتی نظیر ضربان سازهای قلبی یا سایر دستگاههای تعبیه شده، دمای بدن دریافتی بیمـاران در رایـانـه، نـرمافزار دستیار عمل خود را آماده سازی میكنند. در این میان، تشخیص نهایی این بیماران نیز شامل اطلاعات داده شده به رایانه خواهد بود. در مرحله بعدی این الگوریتم رایانهای به تحلیل دادههای موجود برای ارتباط دادن علائم بیماری با تشخیص بیماری میپردازد. در 50 درصد موارد این نرمافزار میتواند ظرف كمتر از 4 ثانیه یك پیشبینی محاسبهای را با دقت 99/99 درصد انجام دهد، در باقی موارد نیز این نرمافزار، بیش از 80درصد صحت عمل داشته است. البته محققان به این مرحله بسنده نكرده و قصد دارند، گام بعدی پروژه هوش مصنوعی خود را روی 200 مورد از پرونده پزشكی بیمارانی اجرا كنند كه رایانه، اطلاعی از تشخیص نهایی آن ها ندارد. تشخیص عفونتهای قلبی مشكل است اما اغلب میتوان آن ها را با تجویز و مصرف حدود یك هفته آنتیبیوتیكمعالجه كرد.
طراحی نرم افزاری بر پایه هوش مصنوعی برای كمك به التیام زخم های باز
زخمهای باز كه پس از هفتهها یا ماهها درمان، در برابر التیام و بهبود مقاومت كرده، معالجات را رد میكنند و به عنوان زخمهای كم خون موضعی شناخته میشوند، راه تشخیص آسانی دارند اما در عوض به طرز ناامیدكنندهای درمان دشواری را به همراه دارند و حتی به اعتقاد برخی پزشكان، این گونه زخمها هر درمانی را بی اثر میكنند و انگار كه هیچ درمانی برای التیام آن ها صورت نگرفته است. در همین ارتباط، گروهی از محققان، موفق به توسعه الگوریتمی ریاضیاتی شدهاند كه میتواند زمان بسته شدن یك زخم باز از نوع كم خون موضعی و همچنین این را كه چه عوارض و پیامدهایی طی فـرآینـد قطـع جـریـان خون و بندآوری بروز میكند، پیشبینی كند. مدلهای فعلی، زخمهایی را هدف میگیرند كه در هر صورت بسته خواهند شد، و هدف توسعه مدلی برای زخمهایی است كه نمیخواهند بسته شوند.
مـواردی همچـون زخـمپـای بیمـاران دیـابتی یا زخم بیمارانی كه به دلیل عوارض دیگری، قبلا فرآیند بیمارستانی را گذراندهاند، از موارد شایع و هدف زخمهای باز مـحسـوب مـیشـود. گـروهـی تحقیقـاتـی بـرای كمـك بـه درمـان زخـمهـای مـوضعـی، برنامهای را توسعه دادهاند كه دادههای بیماران را پردازش میكند؛ اطلاعاتی از قبیل غلظت خون، فاكتورهای رشد، حضور گلبولهای سفید و تراكم فیبروبلاستی از جمله دادههـایـی اسـت كـه بـه رایانه داده میشوند. رایانه نیز با استفاده از این دادهها مدلی سهبعدی از زخم مربوط را ایجاد و چگونگی التیام یافتن و بهبود سریع آن را ظاهر میكند و بهعلاوه زمان بسته شدن زخم را نیز تخمین میزند. به ادعای محققان اكنون و بر اساس این مدل، یك زخم معمولی ظرف حدود 13 روز بسته خواهد شد و این در حالی است كه پس از گذشت 20 روز تنها 25 درصد از زخمهای باز موضعی التیام و بهبود مییابند. این اعداد و ارقام با آنچه عملا برای بیماران اتفاق میافتد، تطبیق میكند، اما در این میان نباید از نظر دور داشت كه تا اینجای كار تنها در قالب تئوری استفاده شده و مدل حاضر هنوز روی بیماران انسانی امتحان نشده است.
به اعتقاد برخی محققان، فناوری هوش مصنوعی یا به عبارتی سامانههای شبیهساز نحوه كاركردهای مغز خواه برای بهبود زخمها و چه در مورد عفونتهای قلبی به كار بـرده شوند، دست كم به این زودیها جای پزشكان واقعی را نخواهند گرفت. این شبكههای عصبی مصنوعی نه میتوانند بیماران را ببینند و نه میتوانند آن ها را برای یـافتـن عـلائـم عفـونـت و آلـودگـی یا نشانههای مرضی مورد آزمایش قرار دهند؛ اما واقعیت این است كه چنین برنامههایی در موارد گیجكننده و مبهم كه كار تشخیص بیماری با دشواری مواجه مـیشـود و تشخیـص صحیـح و بـهمـوقـع بـرای پزشك و بیمار بسیار حیاتی است، دستیاری قابل و مورد اطمینان برای متخصصان بالینی به شمار میرود.
همچنین بخوانید:
هوش مصنوعی و كاربردهای آن در پزشكی (بخش اول)
مشاوره مجازی در ارائه خدمات بهداشتی
10 برنامه برتر خدمات پزشکی از راه دور سال 2019