Daha çox

Təkrarlanan masalarda (model istehsalçısı) birdən çox çıxış necə olmalıdır?


Modelbuilder-də bir model hazırlayıram ki, girişdə 5 excel cədvəli var və istədiyim modelin sonunda 5 nəticə əldə etməkdir. Bunu necə edə bilərəm?

Layihə alətindən sonra 5 nəticəyə sahib olmaq istəyirəm. Model hazırda belədir:


Bu modeli işə saldıqdan sonra iş dəftərinizdəki son iş səhifəsini bir cədvəllə bitirdiyinizi söyləyirsiniz? Satır içi əvəzetmədən istifadə etməlisiniz. İstifadə edin Ad proyekt vasitəsindəki çıxış xüsusiyyətinizdəki yineleyicidən çıxan dəyişən. Nümunə c: temp myData_% Ad% .shp ola bilər


Böyük bir verilənlər bazasının mysqldumpını necə optimallaşdırmaq olar?

1.2 GB). Hal-hazırda verilənlər bazasını hər gecə yedekləmək üçün mysqldump-dan istifadə edirəm.

Comcast bağlantım səbəbiylə, bir dəfə mən əlimdən bir zibil işləyirəmsə, serverlə əlaqəm zibillik tamamlanmadan vaxtım bitəcək və mən zibili təkrarlamalıyam. [Hal-hazırda zibilliyi hər gecə edən bir cron işləyirəm, bu yalnız əllə işlədiyim zibillər üçündür.]

Bağlantı zamanaşımı problemi üçün zibillikləri sürətləndirməyin, eyni zamanda serverin bu proseslə məşğul olma müddətini məhdudlaşdırmağın bir yolu varmı?

BTW, hazırda bu problemi həll etmək üçün ümumi verilənlər bazasının həcminin azaldılması üzərində işləyirəm.


2 Cavablar 2

MD5-in ən həssas hashing alqoritmi olduğunu bilirəm

Texniki cəhətdən yaxşıdır (biz burada texnikiyik) MD5-dən daha pis alqoritmlər var.

və xüsusilə toqquşmalara qarşı həssasdır

Bəli, insanlar fərqli bir açıq mətnlə istədiyiniz bir hash yarada bilərlər. Bunun təsadüfi baş vermə ehtimalı yoxdur, ancaq zərərli şəkildə baş verə bilər.

Ancaq toqquşma zəifliyi çox riskli deyil və kimsə bundan üstünlük kimi istifadə edə bilər, amma bu, çox şanslıdır.

Çox şans deyil. İstədiyiniz bir MD5 istehsal edən açıq mətn tapmaq üçün üsullar var. Fərqli bir sual üçün yaxşı bir mövzudur.

Tamam, MD5 istifadə edərək parol saxladığımı düşünək.

Çox. MD5 istifadə etməməyinizin əsas səbəbi a olmasıdır Ümumi Məqsəd (Sürətli) Hash.

A istifadə etməlisiniz (Yavaş) Şifrə Hash kimi

  • BCrypt adətən tövsiyə olunur, lakin giriş məlumatlarına sürətli bir SHA-2 qarışığı işləddiyinizə əmin olun, beləliklə super uzun parollar BCrypt tərəfindən kəsilməyəcəkdir
  • PBKDF2, lakin daha az Yaddaş tələblərinə sahib olduğu üçün daha az GPU davamlıdır.
  • SCrypt BCrypt-dən yaxşıdır əgər kifayət qədər yüksək iş faktorunuz var. Əks təqdirdə, GPU'lara qarşı daha pisdir. (yenə də daha yüksək və ya daha aşağı Yaddaş tələblərinə görə)
  • Şifrə Hashing Yarışmasının qalibi yuxarıda göstərilənlərdən daha yaxşı ola bilər, lakin hələ zamanın sınağından keçməyib, buna görə hələ istifadə etməyin. Argon2 adlanır və CPU vaxtı və Yaddaş yükü üçün ayrıca İş Faktor parametrlərinə malikdir. (gözəl!)
  • Təkrarlanan SHA-2 PBKDF2 (hələ də GPU-ya davamlı deyil) əvəzinə istifadə edilə bilər, lakin bu, təkrarı səmərəli şəkildə həyata keçirmək üçün daha çətindir (yəni kobud gücə davamlı olmaq üçün), çünki SHA-2 əslində Ümumi Məqsəddir (Sürətli).

Bu seçimlərin əksəriyyəti standart olaraq təsadüfi duz yaradır, ancaq bunun olub olmadığını yoxlamalısınız!

Ən yaxşısı bibər (

Hashdan əvvəl Şifrədən əvvəl 72 bit entropiya). Bibər bütün istifadəçiləriniz üçün eyni ola bilər, lakin SQL Injection vasitəsilə komponent tapılamaması üçün verilənlər bazasından kənar bir faylda saxlanılmalıdır.

İş Faktorunuzun hədəf aparatınızda təqribən 100ms (müvafiq DoS qorunması ilə) tələb olunmasına əmin olun (təcavüzkarların Brute force üçün daha sürətli aparat istifadə edəcəyini bilməklə)

Əlbəttə ki, heç bir qarışıq zəif parolları qoruya bilməz, buna görə parol möhkəmliyi tələblərini də daxil edin.

toqquşma zəifliyi. təcavüzkarın bundan üstünlük kimi istifadə etməsinin bir yolu varmı?

Şifrə qarışığı saxlama kontekstində bu, təcavüzkara kömək etməyəcəkdir.

Bu günlərdə hash alqoritmlərinə hücum edilməsinin əsas səbəbi parollarla heç bir əlaqəsi yoxdur. MD5-in parol silməyə gəldikdə hələ də etibarlı olduğuna inanıram. göy qurşağı masalarını məğlub etmək və alqoritmi kobud güc təxminini yavaşlatmaq üçün dəfələrlə təkrarlamaq üçün duzlardan istifadə etməyiniz şərtdir (bunun əvəzinə standart bir alqoritm istifadə etməlisiniz). Problem rəqəmsal imzalar və ya müvafiq olaraq X.509 sertifikatlarındadır.

Artıq 10 ildir ki, md5 istifadə edərək imzalara "seçilmiş prefiks hücumu" var. 2006 və ya 2007-ci illərdə Eindhoven texniki universitetindən Arjen Lenstra ətrafındakı bir komanda, ticarət CA tərəfindən verilmiş MD5 karma ilə eyni hiyləgər bir sertifikat yaratdı. Hücum əhəmiyyətli bir hesablama gücü tələb etdi və quraşdırma son dərəcə inkişaf etmişdi, lakin nəticə MD5-in təhlükə altında qaldı. Buraya və buraya baxın.

Eyni texnika məşhur ALEV hücumunda da istifadə edildi.

Düzgün fərq etdiyiniz kimi, parol zibilinə gəldikdə, vəziyyət tamamilə fərqlidir, çünki düz mətni bilmədən bir toqquşma meydana gəlməlidir. Rəqəmsal imzalara gəldikdə, ümumiyyətlə açıq mətn bilinir və əlbəttə ki, bu, yuxarıda göstərilən işin göstərdiyi kimi əlavə hücum vektorlarını açır.


Mənim təlimatımdan MySQL verilənlər bazasında tam Unicode-u necə dəstəkləmək olar, verilənlər bazası, cədvəl və ya sütunun xartetini və müqayisəsini yeniləmək üçün çalışdıra biləcəyiniz suallar:

(Bunu kor-koranə kopyalayıb yapışdırmayın! Dəqiq ifadə sütun növünə, maksimum uzunluğa və digər xüsusiyyətlərə bağlıdır. Yuxarıdakı sətir VARCHAR sütunu üçün yalnız bir nümunədir.)

Ancaq nəzərə alın ki, utf8-dən utf8mb4-ə çevrilməni tam avtomatlaşdıra bilməzsiniz. Yuxarıda göstərilən təlimatın 4-cü addımında təsvir olunduğu kimi, utf8mb yerinə utf8mb4 istifadə edildikdə göstərdiyiniz rəqəm fərqli bir mənaya malik olduğundan sütunların və indeks düymələrinin maksimum uzunluğunu yoxlamalısınız.

Bu həll verilənlər bazalarını, cədvəlləri və sütunları çevirmək üçün lazım olan sorğuları yaradır və sonra işlədir. Varchar, text, tinytext, orta mətn, longtext, char tipli bütün sütunları çevirir.

Həmişə etməlisən verilənlər bazanızın ehtiyat nüsxəsi bir şeyin səhv olması halında.

Aşağıdakı sorğunu gen_queries.sql-ə kopyalayın, YOUR_DATABASE_NAME-nın 4 hadisəsini çevirmək istədiyiniz verilənlər bazası adı ilə əvəz edin:

Verilənlər bazasını çevirmək üçün lazım olan bütün sorğularla yeni bir queries.sql faylı yaratmaq üçün aşağıdakı əmri işə salın:

Konvertasiyanı həyata keçirərək sorğuların işlənməsi üçün aşağıdakı əmri işə salın:

  • Dönüşümün birdən çox verilənlər bazasında işlədilməsi üçün, sorğunun LIKE & quotYOUR_DATABASE_NAME & quot hissəsindəki table_schema tənzimləyin, məsələn:
    • Tablo_schema LIKE & quotwiki _% & quot ilə əvəzlənsə adı wiki_ ilə başlayan bütün verilənlər bazaları çevriləcəkdir
    • Table_type! = 'SYSTEM VIEW' ilə əvəz etmək bütün verilənlər bazalarını çevirəcəkdir

    Aşağıdakı shell skriptindən istifadə etdim. Verilənlər bazası adını bir parametr olaraq alır və bütün cədvəlləri başqa bir izləmə və müqayisəyə çevirir (başqa bir parametr və ya ssenaridə təyin olunan dəyər verilir).

    Bütün masaları gəzmək üçün information_schema (CƏDVƏLLƏR və Sütunlar) istifadə etmək və hər CHAR / VARCHAR / TEXT sahəsində MODIFY COLUMN etmək üçün bir skript (Perl dilində və ya hər hansı bir şəkildə) yazardım. Bütün MODİFLƏRİ hər cədvəl üçün tək bir ALTER şəklində toplayardım, bu daha səmərəli olacaq.

    Raihanın təklifinin yalnız dəyişiklikləri olduğunu düşünürəm (amma əmin deyiləm) defolt masa üçün.

    Bu vəziyyətə qaçmaq, verilənlər bazamı çevirmək üçün istifadə etdiyim yanaşma:

    Əvvəla, verilənlər bazası əlaqəsini (tətbiqetmələr və MYSQL arasında) utf8mb4_unicode_ci ilə uyğunlaşdırmaq üçün my.cnf-i düzəltməlisiniz. Tətbiqləriniz tərəfindən göndərilən emojilər və bənzəri kimi bu simvollar cədvəllərinizə düzgün baytda / kodlamada daxil ola bilməz (tətbiqinizin DB CNN parametrləri utf8mb4 bağlantısı göstərmədikdə).

    Aşağıdakı SQL-i icra edin (fərdi sütunları dəyişdirmək üçün hazırlanmış SQL-in alınmasına ehtiyac yoxdur, ALTER TABLE ifadələri bunu edəcəkdir).

    Aşağıdakı kodu icra etməzdən əvvəl "DbName" -i həqiqi DB adınızla əvəz edin.

    Yuxarıdakı SQL-in nəticəsini bir nöqtə sql sənədində toplayın və qeyd edin.

    # 1071 kimi bir səhv əldə edirsinizsə - Göstərilən düymə çox uzun idi maksimum açar uzunluğu 1000 baytdır. problemli cədvəl adı ilə birlikdə, bu cədvəlin bəzi sütunundakı indeks açarı (MB4 charstring-ə çevrilməli idi) çox böyük olduğu üçün Varchar sütununun & lt = 250 olması üçün indeks açarı maksimum 1000 olacaqdır bayt. İndeksləriniz olan sütunları yoxlayın və onlardan biri varchar> 250 (böyük ehtimalla 255) olduqda

    Addım 1: sütundakı maksimum sətir ölçüsünün & lt = 250 olduğuna əmin olmaq üçün həmin sütundakı məlumatları yoxlayın.

    Addım 2: indekslənmiş sütun məlumatlarının maksimum uzunluğu & lt = 250 olduqda, uzunluğu 250-ə dəyişdirin. Bu mümkün deyilsə, həmin sütundakı indeksi silin.

    Adım 3: sonra yenidən həmin cədvəl üçün dəyişdirmə cədvəli sorğusunu işə salın və cədvəl artıq uğurla utf8mb4-ə çevrilməlidir.

    İşimdən ALTER məlumat bazası və cədvəllərin kifayət olmadığını gördüm. Hər bir cədvələ girməli və mətn / orta mətn / varchar sütunlarının hər birini dəyişdirməliydim.

    Xoşbəxtlikdən MySQL verilənlər bazalarının metadatalarını aşkar etmək üçün bir ssenari yazmağı bacardım, beləliklə cədvəllər və sütunlar arasından keçib onları avtomatik dəyişə bildim.

    MySQL 5.6 üçün uzun indeks:

    DBA / SUPER USER imtiyazına sahib olmağınız lazım olan bir şey var: verilənlər bazası parametrlərinin qurulması:

    Bu sualın cavablarında yuxarıda göstərilən parametrlərin necə qurulacağı barədə təlimat var: https://stackoverflow.com/questions/35847015/mysql-change-innodb-large-prefix

    Əlbətdə ki, məqaləmdə bunun üçün təlimatlar da var.

    MySQL 5.7 və ya daha yeni versiyası üçün, innodb_large_prefix default olaraq AÇIKdır və innodb_file_format da varsayılan olaraq Barracuda'dır.

    Bu problemlə üzləşə biləcək insanlar üçün ən yaxşı həll yolu bu cədvələ əsasən əvvəlcə sütunları ikili tipə dəyişdirməkdir:

    1. CHAR => İKİ
    2. MƏTN => BLOB
    3. TINYTEXT => TINYBLOB
    4. MEDIUMTEXT => MEDIUMBLOB
    5. LONGTEXT => LONGBLOB
    6. VARCHAR => VARBİNAR

    Bundan sonra sütunu əvvəlki növünə və istədiyiniz səs dəsti ilə dəyişdirin.

    Bir neçə latın masasında çalışdım və bütün diakritikləri saxladı.

    Bunu edən bütün sütunlar üçün bu sorğunu çıxara bilərsiniz:

    Xarakter dəsti və müqayisəni yeniləmək üçün nəticə hesabatlarını almaq üçün aşağıdakı SQL ifadələrini işə salın:

    • Yalnız verilmiş simvol dəsti və ya uyğunlaşma ilə uyğun olmayan verilənlər bazasını, cədvəlləri və ya sütunları dəyişdirir.
    • Görünüşlərə adi cədvəl kimi baxmır.
    • Əlaqəli çekləri söndürərək xarici açarın pozulmasının qarşısını alır.
    • Yuxarıdakı SQL ifadələrini çalıştırmadan əvvəl dəyişən dəyərləri müvafiq olaraq yeniləyin.
      • Varsayılan qarışıq utf8mb4_0900_ai_ci tercih etdiyiniz dildə dost olmaya bilər. Məsələn, yarım enlik mötərizələri () tam eni mötərizələrlə eyni hesab edir the) və müəyyən hallarda problemə səbəb olur.
      • SHARSET = 'utf8mb4' VƏ 'utf8mb4% 0900%' kimi KOLLASİYA ŞOU KOLLASİYASINI çalıştırın və ehtiyaclarınız üçün uyğun bir qarışdırma seçin.

      Mənim kimi avtomatizasiyaya etibar etmirsinizsə, problemi bu şəkildə həll etdim.

      Əvvəlcə qazmağı dayandırın!

      DB tərifini dəyişdirərək (digər bütün cavablarda olduğu kimi) yeni cədvəllərin standart işarəsini dəyişdirməyə başlayın:

      Sonra mövcud bütün cədvəllərin yeni sütunları üçün standart işarəni dəyişdirmək üçün sql yaradın:

      İndi & quotlegacy & quot ilə işləyə bilərik

      İstifadə etdiyiniz simvol məlumat növlərini sadalayın:

      Mənim üçün bu siyahı & quotvarchar & quot və & quottext & quot idi

      İstifadə olunan karakter_SETS_ siyahısı:

      Bu, mənə & quotutf8 & quot; & quotlatin1 & quot və & quotutf8mb4 & quot verir ki, bu da avtomatizasiyaya etibar etməməyimin səbəbi, latin1 sütunlarında çirkli məlumatlar olması riski var.

      İndi yeniləməyiniz lazım olan bütün sütunların siyahısını hazırlaya bilərsiniz:

      Düzəliş: Yuxarıdakı orijinal sintaksisdə xəta baş verdi.

      Yalnız utf8 və ya utf8mb4 olan cədvəllər Mathias və MrJingles-in yuxarıda təsvir etdiyi kimi & quotCONVERT TO CHARACTER SET & quot ilə çevrilə bilər, ancaq sonra MySQL-in sizin üçün tipləri dəyişdirməsini riskə qoyursunuz, beləliklə daha yaxşı & quot; SOLUNU DƏYİŞ & & quot; olur.

      Utf8 olmayan sütunlarınız varsa, bu suallar sütun məlumatlarının yoxlanılması üçün ilham verə bilər: https://stackoverflow.com/q/401771/671282 https://stackoverflow.com/q/9304485/671282

      Yəqin ki, əksər sütunlarda nəyi gözlədiyinizi bildiyiniz üçün buna bənzər bir şey ehtiyaclarınıza uyğun olaraq icazə verilən ascii işarələrini dəyişdirdikdən sonra əksəriyyətini idarə edəcəkdir:

      Yuxarıda göstərilənlər uyğun gəlmədikdə bir az & quotfuzzier & quot emalına sahib aşağıdakılardan istifadə etdim:

      Bu sorğu bir utf8-xarakteri ilə başlaya biləcək hər iki simvolla uyğunlaşır, beləliklə bu qeydləri yoxlamağınıza imkan verir, sizə bir çox yanlış müsbət nəticə verə bilər. Çevirə bilmədiyi hər hansı bir simvol varsa utf8 dönüşümü boşa dönə bilmir, buna görə böyük bir sahədə faydalı olmaması üçün böyük bir şans var.


      Artıq bir fayl üzərində necə döngə edəcəyinizi bildiyiniz üçün faylları birləşdirə və sonra birləşdirilmiş faylları işləyə bilərsiniz. Komut pastası iki faylı sətir-sətir birləşdirir. İki fayldan gələn sətirlər arasında bir nişan qoyur, buna görə bu həll fayl adlarınızda heç bir nişanın olmadığını düşünür. (Ayırıcıyı dəyişə bilərsiniz, ancaq bir fayl adında olmayan bir simvol tapmalısınız.)

      Boş sətirləri atlamaq istəyirsinizsə, bunu hər bir sənəddə ayrı-ayrılıqda etməlisiniz, çünki yapışdırmaq bir fayldan boş sətirlə başqa bir sətirdən boş olmayan sətirlə uyğun gələ bilər. Boş olmayan sətirləri süzmək üçün grep istifadə edə bilərsiniz.

      Nəzərə alın ki, iki fayl fərqli uzunluqlara malikdirsə, boş bir $ file2 əldə edəcəksiniz (hansı siyahının əvvəl bitməsindən asılı olmayaraq).


      Çıxış:

      Aşağıdakılar əslində arabadır:

      Bash 4.4 və ya daha yeni versiyanız varsa, ən yaxşısı seçimi mümkündür:

      . bash 4.0 ilə, arızanın aşkarlanması və sözün həqiqi xətti dəstəyinin dəyəri ilə həssaslığa sahib ola bilərsiniz:

      . və ya bash 3.x uyğunluğu və arızanın aşkarlanması, lakin yeni xətt dəstəyi olmadan:

      . və ya bash 3.x uyğunluğu və yeni xətt dəstəyi, lakin uğursuzluq aşkarlanmadan:

      Qiymətləndirdiyiniz bir qabıq ifadəsi yaratmaq üçün jq istifadə edin:

      Sualınızdakı JSON sənədini nəzərə alaraq, jq çağırışı simli istehsal edəcəkdir

      daha sonra qabığınız tərəfindən qiymətləndirilir. Bu sətri qiymətləndirmək, dəyər elementi və dəyər2_2 olan iki elementlə adlanan bir sıra arru yaradacaqdır:

      Jq-dəki @sh operatoru qabığa dair məlumatları düzgün bir şəkildə gətirməyə diqqət yetirir.

      Alternativ olaraq, arr = (.) Hissəsini jq ifadəsindən kənarlaşdırın:

      İndi, jq yalnız alıntı elementlərinin siyahısını yaradır, sonra arr = (.) Daxil edilir və qiymətləndirilir.


      NumPy ilə oynamağımdan bir müddət keçdi, amma məlumatlarımı .csv formatında ixrac etmək üçün numpy.savetxt funksiyasına zəng edirdim:

      Nümunə fayl mydata.csv müvafiq olaraq yaradıldı:

      Pgfplotstable sehri ilə aşağıdakıları edə bilərik:

      Başlıqları silməyin mümkün olub-olmadığını bilmirəm, amma hər halda Christian Feuersänger-dən bu barədə soruşacağam. :)

      Mənim yaxşı dostum perkuss bu başlıqların silinməsinin gözəl bir yolunu təqdim etdi:

      Başqa bir yaxşı "bunu" yolu numpy.savetxt kimi fəaliyyət göstərmək üçün aldatmaqdır:

      bizə aşağıdakı çıxış sənədini verəcəkdir:

      Nəhayət, ən azı, datatool da istifadə edilə bilər. Təəssüf ki, belə görünür ki, datatool elmi qeydləri real dəyərlər kimi tanımır, buna görə də bir simli dəyər kimi davranır. Bunu düzəltmək üçün .csv sənədimi ayırıcı kimi vergüllə və sabit nöqtə dəyərləri ilə ixrac etdim:

      aşağıdakı nəticəni yaradacaq:

      İndi Alan'ın cavabına əsaslanan LaTeX kodumuz:

      DTLdisplaydb istifadə edərək başlıqlar məcburidir. Bunları istəmirsinizsə, əvəzinə .csv dəyərinin dəyərlərini təkrarlaya bilərsiniz.

      Bu paketlər haqqında daha çox məlumatı etiketlərini axtararaq əldə edə bilərsiniz: siunitx, datatool, pgfplotstable


      Təxminən hər bir proqramlaşdırma dilində təhlilçilərin mövcudluğu, məlumat mübadiləsi formatı kimi JSON-un üstünlüklərindən biridir.

      Bir JSON ayrıştırıcısını tətbiq etməyə çalışmaqdansa, ehtimal ki, ya jq kimi JSON ayrıştırma üçün qurulmuş bir vasitə və ya bir JSON kitabxanasına sahib bir ümumi təyinatlı skript dili istifadə etmək daha yaxşıdır.

      Məsələn, jq istifadə edərək, nümunələri massivinin birinci hissəsindən ImageID-i aşağıdakı kimi çıxara bilərsiniz:

      Alternativ olaraq, Ruby's JSON kitabxanasından istifadə edərək eyni məlumatları əldə etmək:

      Yenidən işlənmiş suallarınıza və şərhlərinizə cavab verməyəcəm, amma inşallah aşağıdakılar işə başlamağınız üçün kifayətdir.

      Fərz edək ki, STDIN-dən a oxuya bilən və nümunə çıxışınızdakı ikinci sətri çıxara bilən bir Ruby skriptiniz var [0]. Bu skript aşağıdakı kimi görünə bilər:

      Bütün hədəfinizi həyata keçirmək üçün belə bir ssenaridən necə istifadə edə bilərsiniz? Tutaq ki, onsuz da aşağıdakılar var idi:

      • bütün nümunələrinizi sadalamaq üçün bir əmr
      • siyahınızdakı hər hansı bir nümunə üçün yuxarıdakı json-u almaq və STDOU-a çıxarmaq üçün bir əmr

      Bir yolu bu alətləri birləşdirmək üçün qabığınızdan istifadə etmək olar:

      İndi, bəlkə də o & quotİnstatlar & quot massivində daha çox maddə olan bütün nümunələr üçün sizə bir json blob verən tək bir əmriniz var. Yaxşı, belədirsə, ilk elementdən istifadə etmək əvəzinə, skripti massivdə təkrarlamaq üçün bir az dəyişdirməlisiniz.

      Sonda bu problemi həll etməyin yolu, Unix-də bir çox problemi həll etməyin yoludur. Daha asan problemlərə ayırın. Daha asan problemi həll etmək üçün alətlər tapın və ya yazın. Bu alətləri qabığınız və ya digər əməliyyat sistemi xüsusiyyətləri ilə birləşdirin.

      [0] Diqqət yetirin ki, xərc mərkəzini haradan əldə etdiyiniz barədə heç bir fikrim yoxdur, ona görə də sadəcə uydurdum.


      6. RDF Bağlantılarını digər Məlumat mənbələrinə necə qurmaq olar

      RDF əlaqələri, Bağlı Məlumat brauzerlərinə və tarayıcılarına məlumat mənbələri arasında hərəkət etmək və əlavə məlumat tapmaq imkanı verir.

      Tətbiq sahəsi, hansı RDF xüsusiyyətlərinin predikat kimi istifadə edildiyini təyin edəcəkdir. Məsələn, insanları təsvir etmək sahəsindəki çox istifadə olunan əlaqə xüsusiyyətləri foaf: bilir, foaf: based_near və foaf: topic_interest. Bu xüsusiyyətlərin DBpedia, DBLP biblioqrafiyası və RDF Book Mashup-un əmlak dəyərləri ilə birləşdirilməsi nümunələrinə Tim Berners-Lee və Ivan Herman'ın FOAF profillərində rast gəlinir.

      Bayquş: sameAs xassəsindən başqa bir məlumat mənbəyinin müəyyən bir məlumat mənbəyi haqqında da məlumat verdiyini ifadə etmək üçün istifadə etmək adi bir haldır. Bayquş: sameAs bağlantısı iki URI istinadının həqiqətən eyni şeyə işarə etdiyini göstərir. Buna görə, bayquş: sameAs müxtəlif URI takma adları arasındakı xəritədə istifadə olunur (bax Bölmə 2.1). Bayquşdan istifadə nümunələri: Eyni URI-lərin eyni şey haqqında danışdığını göstərmək üçün yenə də Timin FOAF profilidir ki, http://www.w3.org/People/Berners-Lee/card#i-nin http ilə eyni mənbəyi müəyyənləşdirdiyini bildirir: //www4.wiwiss.fu-berlin.de/bookmashup/persons/Tim+Berners-Lee və http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007. Digər istifadə nümunələri DBpedia və Berlin DBLP serverində tapılmışdır.

      RDF əlaqələri əl ilə qurula bilər, bu da ümumiyyətlə FOAF profillərinə aiddir və ya avtomatik əlaqələndirmə alqoritmləri ilə yaradıla bilər. Bu yanaşma ümumiyyətlə böyük məlumat dəstlərini bir-birinə bağlamaq üçün alınır.

      6.1 RDF Bağlantılarını Əllə qurma

      RDF əlaqələrini əl ilə qurmadan əvvəl, əlaqələndirmək istədiyiniz məlumat dəstləri haqqında bir şey bilməlisiniz. Hədəfləri birləşdirmək üçün istifadə edilə bilən müxtəlif məlumat dəstlərinə ümumi baxış əldə etmək üçün Xahiş edirik Açıq Verilənlər Dəstini Bağlamaq siyahısına baxın. Müəyyən bir məlumat dəstlərini uyğun birləşdirmə hədəfləri olaraq təyin etdikdən sonra, əlaqələndirmək istədiyiniz URI istinadları üçün əl ilə axtarış edə bilərsiniz. Bir məlumat mənbəyi bir axtarış interfeysi təmin etmirsə, məsələn bir SPARQL son nöqtəsi və ya bir HTML Veb forması, verilənlər bazasını araşdırmaq və doğru URI'ləri tapmaq üçün Tabulator və ya Disko kimi Bağlı Məlumat brauzerlərindən istifadə edə bilərsiniz.

      Mövcud URI-ləri axtarmaq və bir neçə namizəd tapsanız ən populyar birini seçmək üçün Uriqr və ya Sindice kimi xidmətlərdən də istifadə edə bilərsiniz. Uriqr, sadəcə adlarını axtararaq tanıdığınız insanlar üçün URI tapmaq imkanı verir. Nəticələr, İnternetdəki RDF sənədlərində müəyyən bir URI-yə nə qədər çox istinad edildiyinə görə sıralanır, lakin istifadə üçün ən uyğun URI seçimində bir az insan zəkası tətbiq etməlisiniz. Sindice, Semantik Veb-i indeksləşdirir və müəyyən URI-nin hansı mənbələrdən bəhs etdiyini sizə deyə bilər. Bu səbəbdən xidmət, bir konsepsiya üçün ən populyar URI seçməyinizə kömək edə bilər.

      Məlumat mənbələrinin, məlumat olmayan mənbələri təyin edən URI-lərdən müştəriləri məlumat olmayan mənbələri təsvir edən məlumat mənbələrini təyin edən URI'lərə yönləndirmək üçün məlumat mənbələrinin HTTP-303 yönləndirmələrindən istifadə edə biləcəyini unutmayın. Bu halda, bu barədə sənəd deyil, məlumat mənbəyi olmayan URI istinadına keçdiyinizə əmin olun.

      6.2 Avtomatik olaraq yaradılan RDF Bağlantıları

      Yuxarıda təsvir olunan yanaşma böyük məlumat dəstlərini əhatə etmir, məsələn, DBpedia-dakı 70.000 yeri Geonamesdəki müvafiq girişləri ilə bir-birinə bağlayır. Belə hallarda, məlumat mənbələri arasında RDF əlaqələri yaratmaq üçün avtomatlaşdırılmış bir qeyd alqoritmindən istifadə etmək mantiqidir.

      Record Linkage, verilənlər bazası birliyində tanınmış bir problemdir. Açıq Verilənləri Bağlamaq Layihəsi, Ekvivalentlik mədənçiliyi wiki səhifəsindəki Bağlı Məlumat kontekstində qeyd əlaqəsi alqoritmlərinin istifadəsi ilə əlaqədar material toplayır.

      RDF əlaqələrini avtomatik olaraq yaratmaq üçün hələ yaxşı, istifadəsi asan alətlər çatışmır. Bu səbəbdən məlumat mənbələri arasında RDF əlaqələri yaratmaq üçün verilənlər bazasına məxsus qeyd əlaqələndirmə alqoritmlərini tətbiq etmək adi bir təcrübədir. Aşağıda bu cür alqoritmlərin iki sinfini təsvir edirik:

      Nümunə əsaslanan alqoritmlər

      Müxtəlif sahələrdə ümumiyyətlə qəbul edilmiş adlandırma şemaları mövcuddur. Məsələn, nəşr alanında ISBN nömrələri, maliyyə sahəsində ISIN identifikatorları var. Bu identifikatorlar müəyyən mənbələri müəyyənləşdirən HTTP URI-lərinin bir hissəsi kimi istifadə olunursa, bu mənbələr arasında RDF əlaqələri yaratmaq üçün sadə nümunə əsaslı alqoritmlərdən istifadə etmək mümkündür.

      ISBN nömrələrini URI-lərinin bir hissəsi kimi istifadə edən bir məlumat mənbəyinin nümunəsi, məsələn kitabı müəyyənləşdirmək üçün URI http://www4.wiwiss.fu-berlin.de/bookmashup/books/0747581088 istifadə edən RDF Book Mashup'dur. ' Harry Potter və Yarım qanlı Şahzadə '. Bu URI-lərdə ISBN nömrəsinin olması DBpedia-nın bayquş yaratmasını asanlaşdırdı: eyni DBpedia-dakı kitablar və Book Mashup arasındakı əlaqələr. DBpedia aşağıdakı nümunə əsaslı alqoritmdən istifadə edir:

      1. ISBN nömrəsi olan DBpedia'daki bütün kitabları təkrarlayın.
      2. DBpedia-dakı bir kitabın URI'si ilə müvafiq Kitab Mashup URI arasındakı əlaqəni bir bayquş yaradın Book Mashup URI'ları üçün aşağıdakı nümunədən istifadə edin: http://www4.wiwiss.fu-berlin.de/bookmashup/books/.

      Bu alqoritmin DBpedia-dakı bütün kitablara qarşı işləməsi DBpedia verilənlər bazası ilə birləşdirilmiş 9000 RDF əlaqəsi ilə nəticələndi. Məsələn, Harry Potter kitabı üçün nəticə:

      Daha kompleks mülkiyyətə əsaslanan alqoritmlər

      Məlumat dəstləri arasında ümumi identifikatorların mövcud olmadığı hallarda, daha kompleks mülkiyyət əsaslı əlaqə alqoritmlərindən istifadə etmək lazımdır. Aşağıda iki alqoritmi qeyd edirik:

      1. DBpedia və Geonames. Coğrafi yerlər haqqında məlumatlar Geonames verilənlər bazasında olduğu kimi DBpedia da da yer alır. Hər iki məlumat dəstində görünən yerləri müəyyənləşdirmək üçün Geonames komandası məqalə başlığına və enlem və boylam kimi semantik məlumatlarla yanaşı həm də ölkə, inzibati bölgü, xüsusiyyət növü, populyasiya və kateqoriyalara əsaslanan mülkiyyətə əsaslanan bir heuristik istifadə edir. Bu heuristi hər iki məlumat mənbəyinə qarşı aparmaq, Geonames bayquş kimi birləşdirilmiş 70500 yazışma ilə nəticələndi: eyni DBpedia verilənlər bazası ilə olduğu kimi Geonames verilənlər bazası ilə əlaqələr.
      2. Jamendo və MusicBrainz bir-birinə bağlıdır. Zəhmət olmasa Yves Raimond-un Jamendo və MusicBrainz-i bir-birinə bağlamağa yanaşması barədə blog yazısına baxın.

      Mündəricat

      Maşın təlimi kompüterləri tapşırıqları açıq şəkildə proqramlaşdırılmadan necə yerinə yetirə bildiklərini kəşf edir. Bu, müəyyən tapşırıqları yerinə yetirmələri üçün verilən məlumatları öyrənən kompüterləri əhatə edir. Kompüterlərə verilən sadə tapşırıqlar üçün maşının kompüter hissəsindəki problemi həll etmək üçün lazım olan bütün addımları necə yerinə yetirəcəyini izah edən alqoritmləri proqramlaşdırmaq mümkündür, heç bir öyrənməyə ehtiyac yoxdur. Daha inkişaf etmiş tapşırıqlar üçün bir insanın lazımi alqoritmləri əl ilə yaratması çətin ola bilər. Təcrübədə, insan proqramçılarının hər bir lazımi addımı təyin etməsindənsə, maşının öz alqoritmini inkişaf etdirməsinə kömək etmək daha təsirli ola bilər. [7]

      Maşın öyrənmə intizamı, tamamilə qənaətbəxş bir alqoritmin mövcud olmadığı yerlərdə kompüterləri tapşırıqları yerinə yetirməyə öyrətmək üçün müxtəlif yanaşmalardan istifadə edir. Çox sayda potensial cavabın mövcud olduğu hallarda, bir yanaşma düzgün cavabların bəzilərini etibarlı kimi qeyd etməkdir. Bundan sonra bu, düzgün cavabları müəyyənləşdirmək üçün istifadə etdiyi alqoritmi (lər) yaxşılaşdırmaq üçün kompüter üçün təlim məlumatları kimi istifadə edilə bilər. Məsələn, rəqəmsal simvol tanıma vəzifəsi üçün bir sistem hazırlamaq üçün əl ilə yazılmış rəqəmlərdən ibarət MNIST verilənlər bazası tez-tez istifadə edilmişdir. [7]

      Müddət maşın öyrənmə 1959-cu ildə Amerikalı IBMer və kompüter oyunları və süni intellekt sahəsində qabaqcıl olan Arthur Samuel tərəfindən hazırlanıb. [8] [9] 1960-cı illər ərzində maşın öyrənmə araşdırmalarının təmsilçi kitabı Nilssonun modelləri təsnifləşdirmək üçün əsasən maşın öyrənmə ilə məşğul olan Öyrənmə Maşınları haqqında kitabı idi. [10] 1973-cü ildə Duda və Hart tərəfindən təsvir edildiyi kimi, model tanıma ilə əlaqəli maraqlar 1970-ci illərdə davam etdi. [11] 1981-ci ildə bir sinir şəbəkəsinin 40 simvol (26 hərf, 10) tanımağı öyrənməsi üçün tədris strategiyalarından istifadə haqqında bir hesabat verildi. rəqəmlər və 4 xüsusi simvol) kompüter terminalından. [12]

      Tom M. Mitchell, maşın öyrənmə sahəsində öyrənilən alqoritmlərin geniş sitat gətirilmiş, daha rəsmi bir tərifini verdi: "Bir kompüter proqramının təcrübədən öyrənməsi deyilir E bəzi tapşırıq siniflərinə münasibətdə T və performans ölçüsü P vəzifələrdəki performansı Tilə ölçülən P, təcrübə ilə yaxşılaşdırır E. "[13] Maşın öyrənməsindəki vəzifələrin bu tərifi, sahəni idrak baxımından təyin etmək əvəzinə əsaslı bir əməliyyat tərifi təklif edir. Bu, Alan Turing-in" Hesablama Maşınları və Zəkası "adlı məqaləsindəki təklifini izləyir. Maşınlar düşünə bilərmi? "Sualını" Maşınlar (düşünən varlıqlar olaraq) edə biləcəyimizi edə bilərmi? "Sualı ilə əvəz edir. [14]

      Müasir gün maşın öyrənməsinin iki məqsədi var, biri hazırlanmış modellərə əsaslanan məlumatları təsnif etmək, digəri bu modellərə əsaslanaraq gələcək nəticələr üçün proqnoz verməkdir. Verilənlərin təsnifatına xas olan bir hipotetik alqoritm, xərçəngli molları təsnif etmək üçün öyrətmək üçün nəzarət edilən öyrənmə ilə birlikdə molların kompüter görmə qabiliyyətindən istifadə edə bilər. Səhm ticarəti üçün maşın öyrənmə alqoritmi treyderə gələcək potensial proqnozlar barədə məlumat verə bilər. [15]

      Süni intellekt Düzəliş edin

      Elmi bir cəhd olaraq, maşın öyrənmə süni intellekt axtarışı nəticəsində böyüdü. Akademik bir intizam kimi AI-nin ilk günlərində bəzi tədqiqatçılar maşınların məlumat əldə etməsi ilə maraqlanırdılar. Problemə müxtəlif simvolik metodlarla yanaşmağa çalışdılar, daha sonra "sinir şəbəkələri" olaraq adlandırılanlar daha çox qavrayış və sonradan ümumiləşdirilmiş xətti modellərin ixtiraları olduğu aşkarlanan digər modellər idi. [18] Xüsusilə avtomatlaşdırılmış tibbi diaqnozda ehtimal əsaslandırma da istifadə edilmişdir. [19]: 488

      Bununla birlikdə, məntiqi, biliyə əsaslanan yanaşmaya artan diqqət AI ilə maşın öyrənmə arasında bir uçuruma səbəb oldu. Ehtimal sistemləri məlumat toplama və təqdimetmənin nəzəri və praktik problemləri ilə üzləşdi. [19]: 488 1980-ci ilə qədər mütəxəssis sistemlər AI-yə üstünlük təşkil etdi və statistika lehinə olmadı. [20] Simvolik / biliklərə əsaslanan öyrənmə üzərində iş süni intellektdə davam etdi və induktiv məntiq proqramlaşdırmasına gətirib çıxardı, lakin daha statistik tədqiqat xətti indi nümunə tanıma və məlumat alma baxımından AI sahəsindən kənarda idi. [19]: 708-710 755 Sinir şəbəkələri araşdırması eyni vaxtda AI və kompüter elmi tərəfindən tərk edilmişdi. Bu xətt də, Hopfield, Rumelhart və Hinton da daxil olmaqla digər disiplin tədqiqatçıları tərəfindən "bağlantı" olaraq AI / CS sahəsinin xaricində davam etdirildi. Onların əsas uğurları 1980-ci illərin ortalarında backpropagation yenidən icad ilə gəldi. [19]: 25

      Ayrı bir sahə olaraq yenidən təşkil edilən maşın öyrənmə (ML) 1990-cı illərdə inkişaf etməyə başladı. Sahə süni zəkaya nail olmaqdan həll oluna bilən praktik xarakterli problemlərə nail olmaq üçün hədəfini dəyişdirdi. Diqqəti AI-dən miras qoyduğu simvolik yanaşmalardan, statistika və ehtimal nəzəriyyəsindən götürülmüş metod və modellərə yönəltdi. [20]

      2020-ci ildən etibarən bir çox mənbələr maşın öyrənmənin AI-nin bir alt sahəsi olaraq qaldığını iddia etməyə davam edir. [21] [22] [16] Əsas fikir ayrılığı bütün ML-nin AI-nin bir hissəsi olub olmamasıdır, çünki bu, ML-dən istifadə edənlərin AI-dən istifadə etdiklərini iddia edə bilər. Digərləri ML-nin hamısının AI-nin bir hissəsi olmadığına inanır [23] [24] [25] burada yalnız ML-nin 'ağıllı' alt hissəsi AI-nin bir hissəsidir. [26]

      ML və AI arasındakı fərqin nə olduğu sualına Judea Pearl cavab verir Niyə Kitab. [27] Buna görə ML passiv müşahidələrə əsaslanaraq öyrənir və proqnozlaşdırır, AI isə hədəflərinə uğurla çatma şansını maksimum dərəcədə artırmaq üçün ətraf mühitlə qarşılıqlı əlaqədə olan bir agenti nəzərdə tutur. [30]

      Məlumat mədəni redaktə edin

      Maşın öyrənmə və məlumatların çıxarılması tez-tez eyni metodları tətbiq edir və əhəmiyyətli dərəcədə üst-üstə düşür, lakin maşın öyrənmə əsaslanan proqnoza diqqət yetirir məlumdur Təhsil məlumatlarından öyrənilən xüsusiyyətlər, məlumat mədənçiliyi (əvvəllər) naməlum məlumatdakı xüsusiyyətlər (bu məlumat bazalarında məlumat kəşfinin analiz mərhələsidir). Veri mədənçiliyi bir çox maşın öyrənmə metodundan istifadə edir, lakin digər tərəfdən müxtəlif məqsədlərlə maşın öyrənmə də "nəzarətsiz öyrənmə" kimi və ya şagird dəqiqliyini artırmaq üçün əvvəlcədən işlənmiş bir addım kimi məlumat mədən üsullarından istifadə edir. Bu iki tədqiqat cəmiyyəti arasındakı qarışıqlığın çox hissəsi (tez-tez ayrı konfranslar və ayrı jurnallar təşkil edən ECML PKDD böyük bir istisna olmaqla) birlikdə çalışdıqları əsas fərziyyələrdən qaynaqlanır: maşın öyrənməsində performans, ümumiyyətlə, bacarıq baxımından qiymətləndirilir çoxaltmaq məlumdur bilik, məlumat kəşfində və məlumat mədənində (KDD) əsas vəzifə əvvəlki kəşfdir naməlum bilik. Bilinən biliklərə görə qiymətləndirilən bir məlumatsız (nəzarətsiz) metod digər nəzarət olunan metodlarla asanlıqla üstələyəcək, tipik bir KDD tapşırığında, təlim məlumatlarının mövcud olmaması səbəbindən nəzarət edilən metodlardan istifadə edilə bilməz.

      Optimizasiya redaktəsi

      Maşın öyrənməsinin də optimallaşdırma ilə sıx əlaqələri var: bir çox öyrənmə problemi təlimlər nümunəsində bəzi itki funksiyalarının minimuma endirilməsi kimi formalaşır. Zərər funksiyaları tədris olunan modelin proqnozları ilə həqiqi problem nümunələri arasındakı uyğunsuzluğu ifadə edir (məsələn, təsnifat zamanı nümunələrə bir etiket təyin etmək istəyir və modellər əvvəlcədən təyin olunmuş bir sıra etiketləri düzgün proqnozlaşdırmaq üçün öyrədilir nümunələr). [31]

      Ümumiləşdirmə Redaktə edin

      Optimizasiya ilə maşın öyrənmə arasındakı fərq ümumiləşdirmə məqsədindən irəli gəlir: optimallaşdırma alqoritmləri təlim dəstindəki itkini minimuma endirə bilsə də, maşın öyrənməsi görünməmiş nümunələrdəki itkini minimuma endirməklə məşğuldur. Müxtəlif təlim alqoritmlərinin ümumiləşdirilməsini xarakterizə etmək, xüsusilə dərin öyrənmə alqoritmləri üçün cari tədqiqatların aktiv mövzusudur.

      Statistika Redaktə edin

      Machine learning and statistics are closely related fields in terms of methods, but distinct in their principal goal: statistics draws population inferences from a sample, while machine learning finds generalizable predictive patterns. [32] According to Michael I. Jordan, the ideas of machine learning, from methodological principles to theoretical tools, have had a long pre-history in statistics. [33] He also suggested the term data science as a placeholder to call the overall field. [33]

      Leo Breiman distinguished two statistical modeling paradigms: data model and algorithmic model, [34] wherein "algorithmic model" means more or less the machine learning algorithms like Random forest.

      Some statisticians have adopted methods from machine learning, leading to a combined field that they call statistical learning. [35]

      A core objective of a learner is to generalize from its experience. [4] [36] Generalization in this context is the ability of a learning machine to perform accurately on new, unseen examples/tasks after having experienced a learning data set. The training examples come from some generally unknown probability distribution (considered representative of the space of occurrences) and the learner has to build a general model about this space that enables it to produce sufficiently accurate predictions in new cases.

      The computational analysis of machine learning algorithms and their performance is a branch of theoretical computer science known as computational learning theory. Because training sets are finite and the future is uncertain, learning theory usually does not yield guarantees of the performance of algorithms. Instead, probabilistic bounds on the performance are quite common. The bias–variance decomposition is one way to quantify generalization error.

      For the best performance in the context of generalization, the complexity of the hypothesis should match the complexity of the function underlying the data. If the hypothesis is less complex than the function, then the model has under fitted the data. If the complexity of the model is increased in response, then the training error decreases. But if the hypothesis is too complex, then the model is subject to overfitting and generalization will be poorer. [37]

      In addition to performance bounds, learning theorists study the time complexity and feasibility of learning. In computational learning theory, a computation is considered feasible if it can be done in polynomial time. There are two kinds of time complexity results. Positive results show that a certain class of functions can be learned in polynomial time. Negative results show that certain classes cannot be learned in polynomial time.

      Machine learning approaches are traditionally divided into three broad categories, depending on the nature of the "signal" or "feedback" available to the learning system:

        : The computer is presented with example inputs and their desired outputs, given by a "teacher", and the goal is to learn a general rule that maps inputs to outputs. : No labels are given to the learning algorithm, leaving it on its own to find structure in its input. Unsupervised learning can be a goal in itself (discovering hidden patterns in data) or a means towards an end (feature learning). : A computer program interacts with a dynamic environment in which it must perform a certain goal (such as driving a vehicle or playing a game against an opponent). As it navigates its problem space, the program is provided feedback that's analogous to rewards, which it tries to maximize. [4]

      Supervised learning Edit

      Supervised learning algorithms build a mathematical model of a set of data that contains both the inputs and the desired outputs. [38] The data is known as training data, and consists of a set of training examples. Each training example has one or more inputs and the desired output, also known as a supervisory signal. In the mathematical model, each training example is represented by an array or vector, sometimes called a feature vector, and the training data is represented by a matrix. Through iterative optimization of an objective function, supervised learning algorithms learn a function that can be used to predict the output associated with new inputs. [39] An optimal function will allow the algorithm to correctly determine the output for inputs that were not a part of the training data. An algorithm that improves the accuracy of its outputs or predictions over time is said to have learned to perform that task. [13]

      Types of supervised learning algorithms include active learning, classification and regression. [40] Classification algorithms are used when the outputs are restricted to a limited set of values, and regression algorithms are used when the outputs may have any numerical value within a range. As an example, for a classification algorithm that filters emails, the input would be an incoming email, and the output would be the name of the folder in which to file the email.

      Similarity learning is an area of supervised machine learning closely related to regression and classification, but the goal is to learn from examples using a similarity function that measures how similar or related two objects are. It has applications in ranking, recommendation systems, visual identity tracking, face verification, and speaker verification.

      Unsupervised learning Edit

      Unsupervised learning algorithms take a set of data that contains only inputs, and find structure in the data, like grouping or clustering of data points. The algorithms, therefore, learn from test data that has not been labeled, classified or categorized. Instead of responding to feedback, unsupervised learning algorithms identify commonalities in the data and react based on the presence or absence of such commonalities in each new piece of data. A central application of unsupervised learning is in the field of density estimation in statistics, such as finding the probability density function. [41] Though unsupervised learning encompasses other domains involving summarizing and explaining data features.

      Cluster analysis is the assignment of a set of observations into subsets (called clusters) so that observations within the same cluster are similar according to one or more predesignated criteria, while observations drawn from different clusters are dissimilar. Different clustering techniques make different assumptions on the structure of the data, often defined by some similarity metric and evaluated, for example, by internal compactness, or the similarity between members of the same cluster, and separation, the difference between clusters. Other methods are based on estimated densitygraph connectivity.

      Semi-supervised learning Edit

      Semi-supervised learning falls between unsupervised learning (without any labeled training data) and supervised learning (with completely labeled training data). Some of the training examples are missing training labels, yet many machine-learning researchers have found that unlabeled data, when used in conjunction with a small amount of labeled data, can produce a considerable improvement in learning accuracy.

      In weakly supervised learning, the training labels are noisy, limited, or imprecise however, these labels are often cheaper to obtain, resulting in larger effective training sets. [42]

      Reinforcement learning Edit

      Reinforcement learning is an area of machine learning concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward. Due to its generality, the field is studied in many other disciplines, such as game theory, control theory, operations research, information theory, simulation-based optimization, multi-agent systems, swarm intelligence, statistics and genetic algorithms. In machine learning, the environment is typically represented as a Markov decision process (MDP). Many reinforcement learning algorithms use dynamic programming techniques. [43] Reinforcement learning algorithms do not assume knowledge of an exact mathematical model of the MDP, and are used when exact models are infeasible. Reinforcement learning algorithms are used in autonomous vehicles or in learning to play a game against a human opponent.

      Dimensionality Reduction Edit

      The Dimensionality reduction is a process of reducing the number of random variables under the consideration by obtaining a set of principal variables. [44] In other words, it is a process of reducing the dimension of your feature set also called no of features. Most of the dimensionality reduction techniques can be considered as either feature elimination or extraction. One of the popular method of dimensionality reduction is called as principal component analysis.

      The PCA involves changing higher dimensional data (eg. 3D) to a smaller space (eg. 2D). This results in a smaller dimension of data, (2D instead of 3D) while keeping all original variables in the model without changing the data. [45]

      Other types Edit

      Other approaches have been developed which don't fit neatly into this three-fold categorisation, and sometimes more than one is used by the same machine learning system. For example topic modeling, meta learning. [46]

      As of 2020, deep learning has become the dominant approach for much ongoing work in the field of machine learning. [7]

      Self learning Edit

      Self-learning as a machine learning paradigm was introduced in 1982 along with a neural network capable of self-learning named crossbar adaptive array (CAA). [47] It is a learning with no external rewards and no external teacher advice. The CAA self-learning algorithm computes, in a crossbar fashion, both decisions about actions and emotions (feelings) about consequence situations. The system is driven by the interaction between cognition and emotion. [48] The self-learning algorithm updates a memory matrix W =||w(a,s)|| such that in each iteration executes the following machine learning routine:

      It is a system with only one input, situation s, and only one output, action (or behavior) a. There is neither a separate reinforcement input nor an advice input from the environment. The backpropagated value (secondary reinforcement) is the emotion toward the consequence situation. The CAA exists in two environments, one is the behavioral environment where it behaves, and the other is the genetic environment, wherefrom it initially and only once receives initial emotions about situations to be encountered in the behavioral environment. After receiving the genome (species) vector from the genetic environment, the CAA learns a goal-seeking behavior, in an environment that contains both desirable and undesirable situations. [49]

      Feature learning Edit

      Several learning algorithms aim at discovering better representations of the inputs provided during training. [50] Classic examples include principal components analysis and cluster analysis. Feature learning algorithms, also called representation learning algorithms, often attempt to preserve the information in their input but also transform it in a way that makes it useful, often as a pre-processing step before performing classification or predictions. This technique allows reconstruction of the inputs coming from the unknown data-generating distribution, while not being necessarily faithful to configurations that are implausible under that distribution. This replaces manual feature engineering, and allows a machine to both learn the features and use them to perform a specific task.

      Feature learning can be either supervised or unsupervised. In supervised feature learning, features are learned using labeled input data. Examples include artificial neural networks, multilayer perceptrons, and supervised dictionary learning. In unsupervised feature learning, features are learned with unlabeled input data. Examples include dictionary learning, independent component analysis, autoencoders, matrix factorization [51] and various forms of clustering. [52] [53] [54]

      Manifold learning algorithms attempt to do so under the constraint that the learned representation is low-dimensional. Sparse coding algorithms attempt to do so under the constraint that the learned representation is sparse, meaning that the mathematical model has many zeros. Multilinear subspace learning algorithms aim to learn low-dimensional representations directly from tensor representations for multidimensional data, without reshaping them into higher-dimensional vectors. [55] Deep learning algorithms discover multiple levels of representation, or a hierarchy of features, with higher-level, more abstract features defined in terms of (or generating) lower-level features. It has been argued that an intelligent machine is one that learns a representation that disentangles the underlying factors of variation that explain the observed data. [56]

      Feature learning is motivated by the fact that machine learning tasks such as classification often require input that is mathematically and computationally convenient to process. However, real-world data such as images, video, and sensory data has not yielded to attempts to algorithmically define specific features. An alternative is to discover such features or representations through examination, without relying on explicit algorithms.

      Sparse dictionary learning Edit

      Sparse dictionary learning is a feature learning method where a training example is represented as a linear combination of basis functions, and is assumed to be a sparse matrix. The method is strongly NP-hard and difficult to solve approximately. [57] A popular heuristic method for sparse dictionary learning is the K-SVD algorithm. Sparse dictionary learning has been applied in several contexts. In classification, the problem is to determine the class to which a previously unseen training example belongs. For a dictionary where each class has already been built, a new training example is associated with the class that is best sparsely represented by the corresponding dictionary. Sparse dictionary learning has also been applied in image de-noising. The key idea is that a clean image patch can be sparsely represented by an image dictionary, but the noise cannot. [58]

      Anomaly detection Edit

      In data mining, anomaly detection, also known as outlier detection, is the identification of rare items, events or observations which raise suspicions by differing significantly from the majority of the data. [59] Typically, the anomalous items represent an issue such as bank fraud, a structural defect, medical problems or errors in a text. Anomalies are referred to as outliers, novelties, noise, deviations and exceptions. [60]

      In particular, in the context of abuse and network intrusion detection, the interesting objects are often not rare objects, but unexpected bursts of inactivity. This pattern does not adhere to the common statistical definition of an outlier as a rare object, and many outlier detection methods (in particular, unsupervised algorithms) will fail on such data unless it has been aggregated appropriately. Instead, a cluster analysis algorithm may be able to detect the micro-clusters formed by these patterns. [61]

      Three broad categories of anomaly detection techniques exist. [62] Unsupervised anomaly detection techniques detect anomalies in an unlabeled test data set under the assumption that the majority of the instances in the data set are normal, by looking for instances that seem to fit least to the remainder of the data set. Supervised anomaly detection techniques require a data set that has been labeled as "normal" and "abnormal" and involves training a classifier (the key difference to many other statistical classification problems is the inherently unbalanced nature of outlier detection). Semi-supervised anomaly detection techniques construct a model representing normal behavior from a given normal training data set and then test the likelihood of a test instance to be generated by the model.

      Robot learning Edit

      In developmental robotics, robot learning algorithms generate their own sequences of learning experiences, also known as a curriculum, to cumulatively acquire new skills through self-guided exploration and social interaction with humans. These robots use guidance mechanisms such as active learning, maturation, motor synergies and imitation.

      Association rules Edit

      Association rule learning is a rule-based machine learning method for discovering relationships between variables in large databases. It is intended to identify strong rules discovered in databases using some measure of "interestingness". [63]

      Rule-based machine learning is a general term for any machine learning method that identifies, learns, or evolves "rules" to store, manipulate or apply knowledge. The defining characteristic of a rule-based machine learning algorithm is the identification and utilization of a set of relational rules that collectively represent the knowledge captured by the system. This is in contrast to other machine learning algorithms that commonly identify a singular model that can be universally applied to any instance in order to make a prediction. [64] Rule-based machine learning approaches include learning classifier systems, association rule learning, and artificial immune systems.

      Based on the concept of strong rules, Rakesh Agrawal, Tomasz Imieliński and Arun Swami introduced association rules for discovering regularities between products in large-scale transaction data recorded by point-of-sale (POS) systems in supermarkets. [65] For example, the rule < o n i o n s , p o t a t o e s >⇒ < b u r g e r > >Rightarrow >> found in the sales data of a supermarket would indicate that if a customer buys onions and potatoes together, they are likely to also buy hamburger meat. Such information can be used as the basis for decisions about marketing activities such as promotional pricing or product placements. In addition to market basket analysis, association rules are employed today in application areas including Web usage mining, intrusion detection, continuous production, and bioinformatics. In contrast with sequence mining, association rule learning typically does not consider the order of items either within a transaction or across transactions.

      Learning classifier systems (LCS) are a family of rule-based machine learning algorithms that combine a discovery component, typically a genetic algorithm, with a learning component, performing either supervised learning, reinforcement learning, or unsupervised learning. They seek to identify a set of context-dependent rules that collectively store and apply knowledge in a piecewise manner in order to make predictions. [66]

      Inductive logic programming (ILP) is an approach to rule-learning using logic programming as a uniform representation for input examples, background knowledge, and hypotheses. Given an encoding of the known background knowledge and a set of examples represented as a logical database of facts, an ILP system will derive a hypothesized logic program that entails all positive and no negative examples. Inductive programming is a related field that considers any kind of programming language for representing hypotheses (and not only logic programming), such as functional programs.

      Inductive logic programming is particularly useful in bioinformatics and natural language processing. Gordon Plotkin and Ehud Shapiro laid the initial theoretical foundation for inductive machine learning in a logical setting. [67] [68] [69] Shapiro built their first implementation (Model Inference System) in 1981: a Prolog program that inductively inferred logic programs from positive and negative examples. [70] The term inductive here refers to philosophical induction, suggesting a theory to explain observed facts, rather than mathematical induction, proving a property for all members of a well-ordered set.

      Models Edit

      Performing machine learning involves creating a model, which is trained on some training data and then can process additional data to make predictions. Various types of models have been used and researched for machine learning systems.

      Artificial neural networks Edit

      Artificial neural networks (ANNs), or connectionist systems, are computing systems vaguely inspired by the biological neural networks that constitute animal brains. Such systems "learn" to perform tasks by considering examples, generally without being programmed with any task-specific rules.

      An ANN is a model based on a collection of connected units or nodes called "artificial neurons", which loosely model the neurons in a biological brain. Each connection, like the synapses in a biological brain, can transmit information, a "signal", from one artificial neuron to another. An artificial neuron that receives a signal can process it and then signal additional artificial neurons connected to it. In common ANN implementations, the signal at a connection between artificial neurons is a real number, and the output of each artificial neuron is computed by some non-linear function of the sum of its inputs. The connections between artificial neurons are called "edges". Artificial neurons and edges typically have a weight that adjusts as learning proceeds. The weight increases or decreases the strength of the signal at a connection. Artificial neurons may have a threshold such that the signal is only sent if the aggregate signal crosses that threshold. Typically, artificial neurons are aggregated into layers. Different layers may perform different kinds of transformations on their inputs. Signals travel from the first layer (the input layer) to the last layer (the output layer), possibly after traversing the layers multiple times.

      The original goal of the ANN approach was to solve problems in the same way that a human brain would. However, over time, attention moved to performing specific tasks, leading to deviations from biology. Artificial neural networks have been used on a variety of tasks, including computer vision, speech recognition, machine translation, social network filtering, playing board and video games and medical diagnosis.

      Deep learning consists of multiple hidden layers in an artificial neural network. This approach tries to model the way the human brain processes light and sound into vision and hearing. Some successful applications of deep learning are computer vision and speech recognition. [71]

      Decision trees Edit

      Decision tree learning uses a decision tree as a predictive model to go from observations about an item (represented in the branches) to conclusions about the item's target value (represented in the leaves). It is one of the predictive modeling approaches used in statistics, data mining, and machine learning. Tree models where the target variable can take a discrete set of values are called classification trees in these tree structures, leaves represent class labels and branches represent conjunctions of features that lead to those class labels. Decision trees where the target variable can take continuous values (typically real numbers) are called regression trees. In decision analysis, a decision tree can be used to visually and explicitly represent decisions and decision making. In data mining, a decision tree describes data, but the resulting classification tree can be an input for decision making.

      Support-vector machines Edit

      Support-vector machines (SVMs), also known as support-vector networks, are a set of related supervised learning methods used for classification and regression. Given a set of training examples, each marked as belonging to one of two categories, an SVM training algorithm builds a model that predicts whether a new example falls into one category or the other. [72] An SVM training algorithm is a non-probabilistic, binary, linear classifier, although methods such as Platt scaling exist to use SVM in a probabilistic classification setting. In addition to performing linear classification, SVMs can efficiently perform a non-linear classification using what is called the kernel trick, implicitly mapping their inputs into high-dimensional feature spaces.

      Regression analysis Edit

      Regression analysis encompasses a large variety of statistical methods to estimate the relationship between input variables and their associated features. Its most common form is linear regression, where a single line is drawn to best fit the given data according to a mathematical criterion such as ordinary least squares. The latter is often extended by regularization (mathematics) methods to mitigate overfitting and bias, as in ridge regression. When dealing with non-linear problems, go-to models include polynomial regression (for example, used for trendline fitting in Microsoft Excel [73] ), logistic regression (often used in statistical classification) or even kernel regression, which introduces non-linearity by taking advantage of the kernel trick to implicitly map input variables to higher-dimensional space.

      Bayesian networks Edit

      A Bayesian network, belief network, or directed acyclic graphical model is a probabilistic graphical model that represents a set of random variables and their conditional independence with a directed acyclic graph (DAG). For example, a Bayesian network could represent the probabilistic relationships between diseases and symptoms. Given symptoms, the network can be used to compute the probabilities of the presence of various diseases. Efficient algorithms exist that perform inference and learning. Bayesian networks that model sequences of variables, like speech signals or protein sequences, are called dynamic Bayesian networks. Generalizations of Bayesian networks that can represent and solve decision problems under uncertainty are called influence diagrams.

      Genetic algorithms Edit

      A genetic algorithm (GA) is a search algorithm and heuristic technique that mimics the process of natural selection, using methods such as mutation and crossover to generate new genotypes in the hope of finding good solutions to a given problem. In machine learning, genetic algorithms were used in the 1980s and 1990s. [74] [75] Conversely, machine learning techniques have been used to improve the performance of genetic and evolutionary algorithms. [76]

      Training models Edit

      Usually, machine learning models require a lot of data in order for them to perform well. Usually, when training a machine learning model, one needs to collect a large, representative sample of data from a training set. Data from the training set can be as varied as a corpus of text, a collection of images, and data collected from individual users of a service. Overfitting is something to watch out for when training a machine learning model. Trained models derived from biased data can result in skewed or undesired predictions. Algorithmic bias is a potential result from data not fully prepared for training.

      Federated learning Edit

      Federated learning is an adapted form of distributed artificial intelligence to training machine learning models that decentralizes the training process, allowing for users' privacy to be maintained by not needing to send their data to a centralized server. This also increases efficiency by decentralizing the training process to many devices. For example, Gboard uses federated machine learning to train search query prediction models on users' mobile phones without having to send individual searches back to Google. [77]

      There are many applications for machine learning, including:

      In 2006, the media-services provider Netflix held the first "Netflix Prize" competition to find a program to better predict user preferences and improve the accuracy of its existing Cinematch movie recommendation algorithm by at least 10%. A joint team made up of researchers from AT&T Labs-Research in collaboration with the teams Big Chaos and Pragmatic Theory built an ensemble model to win the Grand Prize in 2009 for $1 million. [79] Shortly after the prize was awarded, Netflix realized that viewers' ratings were not the best indicators of their viewing patterns ("everything is a recommendation") and they changed their recommendation engine accordingly. [80] In 2010 The Wall Street Journal wrote about the firm Rebellion Research and their use of machine learning to predict the financial crisis. [81] In 2012, co-founder of Sun Microsystems, Vinod Khosla, predicted that 80% of medical doctors' jobs would be lost in the next two decades to automated machine learning medical diagnostic software. [82] In 2014, it was reported that a machine learning algorithm had been applied in the field of art history to study fine art paintings and that it may have revealed previously unrecognized influences among artists. [83] In 2019 Springer Nature published the first research book created using machine learning. [84] In 2020, machine learning technology was used to help make diagnoses and aid researchers in developing a cure for COVID-19. [85] Machine learning is recently applied to predict the green behavior of human-being. [86] Recently, machine learning technology is also applied to optimise smartphone's performance and thermal behaviour based on the user's interaction with the phone. [87] [88]

      Although machine learning has been transformative in some fields, machine-learning programs often fail to deliver expected results. [89] [90] [91] Reasons for this are numerous: lack of (suitable) data, lack of access to the data, data bias, privacy problems, badly chosen tasks and algorithms, wrong tools and people, lack of resources, and evaluation problems. [92]

      In 2018, a self-driving car from Uber failed to detect a pedestrian, who was killed after a collision. [93] Attempts to use machine learning in healthcare with the IBM Watson system failed to deliver even after years of time and billions of dollars invested. [94] [95]

      Machine learning has been used as a strategy to update the evidence related to systematic review and increased reviewer burden related to the growth of biomedical literature. While it has improved with training sets, it has not yet developed sufficiently to reduce the workload burden without limiting the necessary sensitivity for the findings research themselves. [96]

      Bias Edit

      Machine learning approaches in particular can suffer from different data biases. A machine learning system trained specifically on current customers may not be able to predict the needs of new customer groups that are not represented in the training data. When trained on man-made data, machine learning is likely to pick up the constitutional and unconscious biases already present in society. [97] Language models learned from data have been shown to contain human-like biases. [98] [99] Machine learning systems used for criminal risk assessment have been found to be biased against black people. [100] [101] In 2015, Google photos would often tag black people as gorillas, [102] and in 2018 this still was not well resolved, but Google reportedly was still using the workaround to remove all gorillas from the training data, and thus was not able to recognize real gorillas at all. [103] Similar issues with recognizing non-white people have been found in many other systems. [104] In 2016, Microsoft tested a chatbot that learned from Twitter, and it quickly picked up racist and sexist language. [105] Because of such challenges, the effective use of machine learning may take longer to be adopted in other domains. [106] Concern for fairness in machine learning, that is, reducing bias in machine learning and propelling its use for human good is increasingly expressed by artificial intelligence scientists, including Fei-Fei Li, who reminds engineers that "There’s nothing artificial about AI. It’s inspired by people, it’s created by people, and—most importantly—it impacts people. It is a powerful tool we are only just beginning to understand, and that is a profound responsibility.” [107]

      Classification of machine learning models can be validated by accuracy estimation techniques like the holdout method, which splits the data in a training and test set (conventionally 2/3 training set and 1/3 test set designation) and evaluates the performance of the training model on the test set. In comparison, the K-fold-cross-validation method randomly partitions the data into K subsets and then K experiments are performed each respectively considering 1 subset for evaluation and the remaining K-1 subsets for training the model. In addition to the holdout and cross-validation methods, bootstrap, which samples n instances with replacement from the dataset, can be used to assess model accuracy. [108]

      In addition to overall accuracy, investigators frequently report sensitivity and specificity meaning True Positive Rate (TPR) and True Negative Rate (TNR) respectively. Similarly, investigators sometimes report the false positive rate (FPR) as well as the false negative rate (FNR). However, these rates are ratios that fail to reveal their numerators and denominators. The total operating characteristic (TOC) is an effective method to express a model's diagnostic ability. TOC shows the numerators and denominators of the previously mentioned rates, thus TOC provides more information than the commonly used receiver operating characteristic (ROC) and ROC's associated area under the curve (AUC). [109]

      Machine learning poses a host of ethical questions. Systems which are trained on datasets collected with biases may exhibit these biases upon use (algorithmic bias), thus digitizing cultural prejudices. [110] For example, in 1988, the UK's Commission for Racial Equality found that St. George's Medical School had been using a computer program trained from data of previous admissions staff and this program had denied nearly 60 candidates who were found to be either women or had non-European sounding names. [97] Using job hiring data from a firm with racist hiring policies may lead to a machine learning system duplicating the bias by scoring job applicants by similarity to previous successful applicants. [111] [112] Responsible collection of data and documentation of algorithmic rules used by a system thus is a critical part of machine learning.

      AI can be well-equipped to make decisions in technical fields, which rely heavily on data and historical information. These decisions rely on objectivity and logical reasoning. [113] Because human languages contain biases, machines trained on language corpora will necessarily also learn these biases. [114] [115]

      Other forms of ethical challenges, not related to personal biases, are seen in health care. There are concerns among health care professionals that these systems might not be designed in the public's interest but as income-generating machines. [116] This is especially true in the United States where there is a long-standing ethical dilemma of improving health care, but also increasing profits. For example, the algorithms could be designed to provide patients with unnecessary tests or medication in which the algorithm's proprietary owners hold stakes. There is potential for machine learning in health care to provide professionals an additional tool to diagnose, medicate, and plan recovery paths for patients, but this requires these biases to be mitigated. [117]

      Since the 2010s, advances in both machine learning algorithms and computer hardware have led to more efficient methods for training deep neural networks (a particular narrow subdomain of machine learning) that contain many layers of non-linear hidden units. [118] By 2019, graphic processing units (GPUs), often with AI-specific enhancements, had displaced CPUs as the dominant method of training large-scale commercial cloud AI. [119] OpenAI estimated the hardware compute used in the largest deep learning projects from AlexNet (2012) to AlphaZero (2017), and found a 300,000-fold increase in the amount of compute required, with a doubling-time trendline of 3.4 months. [120] [121]

      Software suites containing a variety of machine learning algorithms include the following:


      Videoya baxın: يا قمر يا عالي (Oktyabr 2021).