دیتا اینسایتز

در مورد علم داده، داده کاوی، هوشمندی کسب و کار(BI) و سایر مطالب مرتبط

دیتا اینسایتز

در مورد علم داده، داده کاوی، هوشمندی کسب و کار(BI) و سایر مطالب مرتبط

آیا دولت ها باید مسئول نظارت و ایمنی هوش مصنوعی باشند؟

این مقاله ترجمه آزادی از مطلبی با عنوان  "Should Governments Be Responsible For The Regulation And Safety Of AI?"  است که متن اصلی آن را می توانید اینجا بخوانید
آیا دولت ها باید مسئول نظارت و ایمنی   هوش مصنوعی باشند؟
تابحال کتابهای علمی-تخیلی زیادی نوشته شده و فیلمهای زیادی در این زمینه ساخته شده است. ایده اصلی بسیاری از این فیلمها و کتابهای علمی-تخیلی این بوده است که هوش مصنوعی پیشرفت غیرقابل باوری خواهد داشت تا جایی که آدمها دیگر نمی توانند آن را کنترل کنند.
طبیعتا این اتفاق مطلوب ما نخواهد بود، چرا که ماشین های هوشمند حتی ممکن است وجود ما را تهدید کنند، به هین خاطر افراد زیادی در مورد تاثیرات منفی بالقوه ماشین های هوشمند در آینده، به ما هشدار می دهند.
اما آیا ترس این افراد از خطرناک بودن پیشرفت هوش مصنوعی برای دنیا، منطقی است؟ خوب، افراد زیادی از جمله برخی از روشن ترین ذهن ها در دنیا، در مورد هوش مصنوعی ابراز نگرانی کرده اند. از جمله، الون ماسک که آن را " یک دیکتاتوری فناناپذیر که از هرگز راه فراری از آن نخواهیم داشت" نامگذاری کرده است. بیل گیتس و استفن هاوکینگ هم در همین زمینه نگرانی خودشان را ابراز کرده اند.
این افراد در تکنولوژی صاحب نظر هستند، بنابراین منطقی به نظر میرسد که به حرف آنها توجه کنیم. اما زمانی که تکنولوژی به جریان اصلی تبدیل شد و توانایی آن را داشت که اثرات منفی عمیقی بجا بگذارد، چه کسی قرار است مسئول نظارت و ایمنی هوش مصنوعی باشد ؟
مطمئنا اولین چیزی که به ذهن می آید دولت است، پس بگذارید بحث کنیم که آیا دولت های سراسر جهان باید بر علیه چالش های مرتبط با هوش مصنوعی اقدام کنند یا نه؟
هوش مصنوعی چه تاثیر منفی ای بر مردم دارد؟
با اینکه هنوز سالها  از یک اثر بالقوه شبیه فیلمهای علمی تخیلی هوش مصنوعی  بر بشریت فاصله می گیریم، اما در حال حاضر چندین چالش قابل توجه داریم که نیاز به راه حل دارند. مثلا حذف شغلها بر اثر استفاده از هوش مصنوعی و بیکار شدن افراد، پیامدهای ایمنی استفاده از هوش مصنوعی، استفاده های غیر اخلاقی از داده ها و حتی بایاس غیرعمدی که توسط توسعه دهنده به الگوریتم هوش مصنوعی تزریق شده ست.
در اینجا لیستی از مواردی که نشان دهنده دامنه فعلی این مشکل، مسائل جاری و تاثیر بالقوه هوش مصنوعی هستند را می بینیم :
-    سیستم نیمه خودکار رانندگی مبتنی بر هوش مصنوعی امسال در دو حادثه شرکت داشته، در یکی از این حوادث یک راننده (اداره ملی ایمنی ترافیک بزرگراه نتیجه گیری کرده که سیستم خوب کار می کند اما سو استفاده از آن بسیار ساده است)  و در دیگری یک عابر پیاده را کشته است.
-    موارد متعددی در کالیفرنیا از افرادی که به ماشین های خودران، روبات های خودکار تحویل دهنده سفارشات و روبات های امنیتی حمله کرده اند گزارش شده است.
-    بر اساس یک مطالعه که اخیرا توسط موسسه جهانی مکلینزی، انجام شده است ربات ها و عامل های مبتنی بر هوش مصنوعی تا سال 2030 می توانند  تا  30 درصد از شغلهای در اختیار نیروی انسانی را حذف کنند (بسته به سرعت پذیرش) و این به معنای از دست رفتن میلیون ها شغل است.
-    مشکل جعبه سیاه! شرکت ها الگوریتم های پیچیده  هوش مصنوعی را توسعه می دهند که می توانند وظایف مختلفی از تعیین خطر ابتلا به فشارخون تا تأیید وام های بانکی را انجام دهند.  با این حال، گاهی اوقات این الگوریتم ها آنقدر  پیچیده هستند که حتی توسعه دهندگان آنها نمی توانند دقیقا توضیح دهند آنها چگونه کار می کنند.  این مسئله "جعبه سیاه" نامیده می شود - ناتوانی در درک و توضیح اینکه یک الگوریتم چگونه کار می کند.
با رشد سریع در تکنولوژی های هوش مصنوعی، به وضوح لازم است دولتها به این مساله رسیدگی کنند و مقررات مناسب برای به حداقل رساندن تاثیر منفی آن بر جامعه و به حداکثر رساندن ایمنی وضع کنند.

دولت چگونه می تواند بر هوش مصنوعی نظارت کند؟
طبق نظرسنجی Morning Consult در مورد تکنولوژی در حال ظهور در سال 2017 ، 71 درصد از پاسخ دهندگان ساکن ایالات متحده گفته اند که دولت باید مقررات ملی را برای هوش مصنوعی وضع کند و 67 درصد نیز خواستار مقررات بین المللی هستند. این نتایج نشان داد که مردم از چالش های بالقوه ناشی از هوش مصنوعی  و نیز مسائل ایمنی آگاه هستند و از این ایده  که دولت باید هر چه سریع تر مقررات مناسب را در این زمینه اتخاذ کند، حمایت می کنند.
اما اصول اساسی ای که دولت ها در سراسر جهان  برای تنظیم تاثیرات هوش مصنوعی  و حفظ ایمنی انسان می توانند اعمال کنند چه هستند؟
در واقع، ما در حال حاضر یک مثال داریم.
دولت انگلیس در سال جاری اقدامات جدی ای برای تنظیم استفاده از هوش مصنوعی  در این کشور و حفاظت از داده های شهروندان از قرار گرفتن در معرض بالقوه انجام داده است.
در واقع کمیته هوش مصنوعی مجلس نمایندگان انگلیس، گزارشی به نام «هوش مصنوعی در انگلیس: آماده، مشتاق و توانا؟» منتشر کرده است که یک استراتژی خاص برای دولت و شرکت های محلی به منظور تنظیم و مدیریت هوش مصنوعی ارائه می دهد.

در این گزارش اصول خاصی برای یک کد هوش مصنوعی برای انگلستان ارائه شده است:
اصل 1: هوش مصنوعی باید در راستای منافع مشترک بشریت و پیشبرد اهداف انسان دوستانه توسعه یابد.
اصل 2: هوش مصنوعی باید بر اساس اصول قابل درک و عدالت عمل کند.
اصل 3: هوش مصنوعی نباید در راستای تضعیف حقوق داده یا حریم خصوصی افراد، خانواده ها یا جوامع استفاده شود.
اصل 4: همه شهروندان حق دارند که بتوانند در کنار هوش مصنوعی، بتوانند توانایی های ذهنی و اقتصادی و هیجانی خود را تقویت کنند.
اصل 5: قدرت خودگردان و مستقل برای آسیب رساندن، نابودی یا فریب انسان هرگز نباید در اختیار هوش مصنوعی  قرار بگیرد.
چارچوب پایه ای خوبی توسط اسن کمیته برای تنظیم هوش مصنوعی ارائه شده که احتمال دارد که توسط دولت بریتانیا به کار برده شود.
در سال جاری، دولت این کشور قدم دیگری را در این زمینه گام برداشته و دستورالعمل مربوط به هوش مصنوعی در زمینه مراقبت های بهداشتی را اتخاذ کرده است که ده اصل را مطرح می کند که فناوری های هوش مصنوعی مبتنی بر داده ها بایستی به آن پایبند باشند و  ایمنی اطلاعات بیمار که توسط تکنولوژی مورد استفاده قرار می گیرد تضمین شود.
پاسخ
با پیشرفت های سریع در تکنولوژی  هوش مصنوعی، روشن است که دولت ها باید در راستای تنظیم مقرارت توسعه آن ها اقدام کنند تا اطمینان حاصل شود که منافع بشر حفط خواهد شد. به منظور به حداقل رساندن تاثیرات بالقوه هوش مصنوعی بر شهروندان، آنها باید  تحقیق، درک و تنظیم هوش مصنوعی را انجام دهند.
و فقط با یک رویکرد هوشمندانه و همه جانبه می توان اطمینان حاصل کرد که سیستم های هوش مصنوعی توصیه ها و راه حل های منطقی و ایمن اخلاقی را ارائه می دهند، بنابراین واضح است که دولت ها نباید خود را از این زمینه کنار بکشند، بلکه باید یک بازیگر فعال باشند و اصول راهنمای موثری را در این زمینه ارائه دهد.


شناسایی موجودیت های اسمی فارسی

هفته گذشته زمان زیادی رو صرف این کردم که یک کتابخانه NER برای فارسی پیدا کنم. و خوب البته به خاطر محدودیت هایی که داشتم لازم بود که ترجیحا کتابخانه مورد نظر برای زبان JAVA هم API داشته باشه.متاسفانه کتابخانه آماده پیدا نکردم اما  نتیجه جستجو به اینجا رسید که با استفاده از Stanford Core NLP و با استفاده از مجموعه داده تگ خورده PersianNER، خودم یک مدل ایجاد کردم. از آنجایی ساختن مدل حداقل 8 گیگ رم لازم داشت، تصمیم گرفتم فایل مدل به دست آمده را برای استفاده بقیه اینجا به اشتارک بگذارمش. فقط باید قبلش اشاره کنم که اولا طبق آنچه که تهیه کنندگان مجموعه داده PersianNER نوشته اند، این مجموعه فقط برای اهداف آکادمیک به اشتراک گذاشته شده و بنابراین در صورتی که قصد استفاده از این کتابخونه را دارید حتما به دو تا منبعی که توی پیج گیت هاب شون گفته اند ارجاع بدید. دوما اینکه مجموعه داده به صورت 3 بخش (  3 fold) ارائه شده که مدلی که اینجا گذاشتم فقط توسط fold اول آموزش و تست شده.

لینک دانلود مدل


و در پایان لینکهای زیر ممکنه به درد تون بخوره :

چطوری با استفاده از Stanford  خودمون یک مدل NER آموزش بدیم؟

 

حذف کلمات توقف فارسی در R

در پکیج tm  می توانید به سادگی با استفاده از دستور زیر کلمات توقف انگلیسی و چند زبان دیگر را از اسنادی که میخواهیم پردازش کنیم،حذف کنیم:

> docs <- tm_map(docs, removeWords, stopwords("english"))

برای اینکه لیست این کلمات را بینید کافیست دستور زیر را اجرا کنید :

>stopwords("english")


متاسفانه این پکیج لیستی از کلمات توقف فارسی ندارد و برای حذف کلمات فارسی کار کمی پیچیده تر است. اما نه خیلی !

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

>stopwords <- readLines(stopwords_file_loc, encoding = "UTF-8")
>docs_swr <- tm_map(docs, removeWords, stopwords)


در کد بالا stopwords_file_loc آدرس فایلی است که کلمات مورد نظرتاان را در آن ذخیره کردید. به همین سادگی!


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


نمونه کد
file_loc <- "C:\\rsamples\\documents.txt"
stopwords_file_loc <- "C:\\rsamples\\stopwords.txt"

files <- read.csv(file_loc, header = FALSE , encoding = "UTF-8")


library (tm)

docs <- Corpus(DataframeSource(files))
docs <-tm_map(docs,removePunctuation)
docs <-tm_map(docs,stripWhitespace)
docs <- tm_map(docs, PlainTextDocument)


#-------- محاسبه ماتریس ترم-سند و رسم نمودار پرتکرارترین کلمات
dtm <- DocumentTermMatrix(docs)
m <- as.matrix(dtm)
termFreq <- colSums(m)
termFreq <-sort(termFreq , decreasing = TRUE)
termFreq <- head(termFreq , 20)
dev.new()
barplot(termFreq    , names.arg = names(termFreq) , horiz = T , las=2 , main="کلمات پر تکرار قبل از حذف کلمات توقف"  , xlab="تعداد تکرار",border="gray"  )

#--------حذف کلمات توقف و سپس محاسبه ماتریس ترم-سند و رسم نمودار پرتکرارترین کلمات
stopwords <- readLines(stopwords_file_loc, encoding = "UTF-8")
docs_swr <- tm_map(docs, removeWords, stopwords)

dtm_swr <- DocumentTermMatrix(docs_swr)
m_swr <- as.matrix(dtm_swr)
termFreq_swr <- colSums(m_swr)
termFreq_swr <-sort(termFreq_swr , decreasing = TRUE)
termFreq_swr <- head(termFreq_swr , 20)
dev.new()
barplot(termFreq_swr    , names.arg = names(termFreq_swr) , horiz = T , las=2 , main="کلمات پر تکرار پس از حذف کلمات توقف"  , xlab="تعداد تکرار",border="gray"  )



دو تا نمودار زیر هم خروجی های این قطعه کد هستند :









متن فارسی و R

یکی از سوالاتی که دوستان خیلی می پرسند نحوه خواندن متن فارسی در R  و تعیین انکدینگ متن هست. خوب قطعا R و پکیجهای پردازش متن آن فقط برای زبان انگلیسی ساخته نشده. راه حل این مشکل این هست که موقع خواندن متن از فایلی که انکدینگ آن UTF-8 ( یا هر انکدینگ دیگه ای هست ) باید این را به R اعلام کنید.  قطعه کد زیر متن فارسی زا  از یک فایل به نام farsidocs.txt می خواند و بعد ابر کلمات آن را رسم می کند. 

فرض بر این است که هر خط از فایل farsidocs.txt  ، معادل یک سند است 


  1. #مسیر فایل
  2. file_loc <- "C:\\ farsidocs.txt"
  3. # موقع خواندن فایل انکدینگ باید مشخص شود
  4. x <- read.csv(file_loc, header = FALSE , encoding = "UTF-8")
  5. # حالا می توانید متن ها را با هر روش دلخواه تحلیل کنید.
  6. library (tm)
  7. docs <- Corpus(DataframeSource(x))
  8. docs <-tm_map(docs,removePunctuation)
  9. docs <-tm_map(docs,stripWhitespace)
  10. docs <- tm_map(docs, PlainTextDocument)
  11. dtm <- DocumentTermMatrix(docs)
  12. m <- as.matrix(dtm)
  13. library(wordcloud)
  14. v <- sort(colSums(m),decreasing=TRUE)
  15. words <- names(v)
  16. d <- data.frame(word=words, freq=v)
  17. dark2 <- brewer.pal(6, "Dark2")  
  18. wordcloud(d$word,d$freq,min.freq=5, colors=dark2)
خولندن متن فارسی و رسم ابر کلمات آن با استفاده از R


تاثیر حذف کلمات توقف

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


ابر کلمات قبل از حذف کلمات توقف


ابر کلمات پس از حذف کلمات توقف


این هم، خبرهایی که از ابر کلمات  آنها، بالا می بینید.