st-pti: kilkanaście terminów


Previous by date: 17 Sep 2020 17:16:04 +0100 odsyłacze do sesyj konferencji FedCSIS, Andrzej Dyżewski, pt
Next by date: 17 Sep 2020 17:16:04 +0100 RE: [st-pti] kilkanaście terminów, Andrew S Targowski
Previous in thread:
Next in thread: 17 Sep 2020 17:16:04 +0100 RE: [st-pti] kilkanaście terminów, Andrew S Targowski

Subject: kilkanaście terminów
From: Andrzej Dyżewski, ####@####.####
Date: 17 Sep 2020 17:16:04 +0100
Message-Id: <032401d68c7f$7acf75c0$706e6140$@gmail.com>

Esej terminologiczny Krzysztofa Michalika z pokrewnej Grupy w Twarzętniku

 

@dy

 

+++++++++++

 

Krzysztof Michalik
<https://www.facebook.com/krzysztof.michalik.545?__tn__=%2CdCH-R-R&eid=ARCvb
a9MLTjUyl1TK9C_bznzzpSUe0uU6Hyp9N-SozAiSTn40yNvJutbJACnKHnu3sZ9avQu_qIlpWiC&
hc_ref=ARS8xwsuXasZ4Gzki8A5C9QmM7Omekxt-7nrJ4viXvhPFmnmyMxwwXJ5Xnil1FNd5jo&f
ref=nf&hc_location=group> 

 <https://www.facebook.com/krzysztof.michalik.545/posts/1565629906931593> 4
godz.

Refleksja nad wartością znajomości historii nauki, przynajmniej własnej
dziedziny, oraz nadmiarową terminologią. Być może te uwagi nadawałyby się do
grupy dot. terminologii w informatyce, niezwykle cennej inicjatywy, ale
myślę, że ten "post" jest trochę za długi by gościł tam, ponadto
odzwierciedla moje subiektywne (!) poglądy.

Od pewnego czasu zastanawiam się nad sensem terminu "Deep Learning", nawet
nie tłumaczonego w polskiej literaturze. Czy ten termin, dosłownie "Głębokie
uczenie" ma sens? Jeśli zajrzymy do literatury przedmiotu z AI (tego akurat
akronimu nie tłumaczę, bo polskie SI rodzi silne skojarzenia z "Systemami
Informatycznymi" lub zależnie od kontekstu "Systemami Informacyjnymi", także
używanymi w literaturze z dziedziny informatyki), to najczęściej i tak
zakres tych publikacji dotyczy SSN (ang. ANN) z wieloma warstwami. Wg wielu
definicji by uznać SSN za "głęboką", to wystarczy by miała więcej niż 2
warstwy ukryte (nie będę tu podawał wielu przykładów definicji z literatury
amerykańskiej). Czyli SSN autora o nazwie Neuronix spełnia to kryterium już
od ok. 1990 roku (dopuszcza do 3 skutecznie działających warstw ukrytych). 

Wracam jednak do kwestii sensu tego terminu. Z tego wynika, że rozsądniej
byłoby pisać o Głębokich Sieciach Neuronowych (z powodu wielu warstw), czyli
GSN, zwłaszcza, że w dobrych pracach anglojęzycznych pojawia się właśnie ten
postulowany przeze mnie wariant jako DNN (Deep Neural Networks). Można by
bardziej poprawić precyzję tego określenia na np. SSN z pogłębionym
uczeniem, bowiem użycie "wielowarstwowe" już powstało dużo wcześniej i może
być związane z Perceptronem Wielowarstwowym (ang. Multilayer Perceptron). A
może człowiek uczy się głęboko? Tak też nie da się uzasadnić terminu Deep
Learning. Badania neurologiczne ustaliły, że kora mózgowa to dokładnie 6
warstw neuronów (o grubości do ok. 5-6 mm), do tego zorganizowanych w
lokalnych kolumnach. Nawet jeśli odnieść tę "głębokość" do myślenia, to też
nie odpowiada rzeczywistości, bowiem poza faktycznie pogłębionym,
analitycznym myśleniem, ludzie często działają "intuicyjnie", niejako na
skróty, więc powierzchownie - czasami używamy na to określenia heurystyka.

Powstają zatem nowe byty terminologiczne IMHO zupełnie zbędne, jak kiedyś
ontologia (oczywiście sam czasami tego terminu używałem, ale z oporami). Te
opory mógł mieć każdy nieco starszy naukowiec, który doskonale znał pojęcie
"Reprezentacji Wiedzy" (ang. Knowledge Representation - KR). A może
ontologie miały jakiś specyficzny wyróżnik, niczym bezobjawowy
objaw/symptom? Nie, one doskonale opisywały/opisują struktury hierarchiczne
(dendrytowe, nawet bez wielodziedziczenia). Czy tego już nie znano
wcześniej? Oczywiście tak! Należy sięgnąć do teorii ram (ang. frame theory).
Nb. "frames" błędnie przez kogoś przetłumaczona jako ramy, ale trudno było
iść pod prąd, bo "ramy"/frames były w zamyśle twórcy (Marvin Minsky)
analogią klatek/kadrów filmowych. Dlatego bardzo konsekwentnie popełniono
drugi błąd, tłumacząc ang. Slots jako klatki, czyli powstało swego rodzaju
zapętlenie definicji. AI, a w jej ramach KR z teorią ram wpłynęły na rozwój
języka Smalltalk-80 (opracowany w laboratorium firmy Xerox, "ortodoksyjny",
pierwszy stricte obiektowy język, piękny w swej konsekwencji struktur
hierarchicznych i abstrakcji np. superklas czy metaklas). Smalltalk-80 wraz
z językiem Simula dał początek pierwszym popularnym językom programowania
obiektowego 
(C++ -> C#, Pascal obiektowy itd.). Czy więc ontologie nadal mają jakiś
wyróżnik abstrakcyjny? Ontologia to termin z dziedziny filozofii bytu, czyli
niemal wszystkiego, czy to na pewno było dobre zapożyczenie? To na
marginesie o pytanie, czy termin "Deep learning" ma jakikolwiek sens i czy
naukowcy z USA musieli go użyć? Ci nie znający historii SSN być może tak.
Ale to moja opinia
https://static.xx.fbcdn.net/images/emoji.php/v9/ta5/1.5/16/1f642.png:)

Ten post wynika z obserwowanego przeze mnie ostatnio mnożenia językowych
"bytów ponad potrzebę". Nagle poza Big Data pojawia nam się Data Science i
wiele wariantów np. Data Engineering itd. itp. Czyli "stara dobra" sztuczna
inteligencja" i "sieci neuronowe" (SSN) już nie istnieją? Wspomniałem o tym
już jakiś czas temu na moim skromnym blogu, na stronie domowej WWW. Do czego
to prowadzi? Do delikatnie mówiąc dziwnych pomysłów, wynikających z
"przyklejania" się do AI przez specjalistów z innych dziedzin bo po raporcie
Lighthila i "zimie" w AI, potem znowu ożywienia za sprawą systemów
ekspertowych (SE) oraz Projekcie Komputerów Piątej Generacji (Japonia)
przewidzianym na 10 lat i kolejnej zimie naukowej w AI, od około 2012 znowu
obserwujemy ocieplenie, a nawet upały w rejonie AI ! Stąd kto może pędzi w
tę stronę wraz z humanistami i ... transhumanistami (tym warto poświęcić
więcej uwagi, bo to co oni głoszą powinno rozsądnym naukowcom, specjalistom
z AI czy nauk ścisłych "zjeżyć włos na głowie", a na pewno zapalić czerwoną
lampkę! Może kiedyś napiszę o tej absurdalnej ideologii (na blogu już co
nieco napisałem), tylko odkrywam po niedawnych wizytach w 2 szpitalach, że
na FB wszystko robi się łatwiej niż w CMS, a czas zaczyna mieć znaczenie
większe niż kiedyś. 

Otóż latem ub. roku byłem zaproszony do grupy eksperckiej mającej wypracować
strategię rozwoju AI w Polsce w ramach szerszego projektu w UE. Brałem tam
aktywny udział i pewnego dnia wśród zgłaszanych pomysłów na projekty, w
które powinno się inwestować usłyszałem..."maszyny statystyczne" !
Początkowo, myślałem, że mimo 40 lat zajmowania się informatyką, coś
przegapiłem, ale wszechwiedzący Google dał zero (null/nil) wyników.
Zgłosiłem uwagę, że to nie ma sensu i została zaakceptowana, na szczęście
dla Polski chyba
https://static.xx.fbcdn.net/images/emoji.php/v9/ta5/1.5/16/1f642.png:) To
prawdopodobnie był efekt wspomnianego swobodnego żonglowania ostatnio
mnogością terminów, które rodzą się szybciej niż wypełniająca je treść.
Morał dla mnie? Nie mnożyć językowych bytów ponad potrzebę, a do tego nie
dokonywać podmiany semantycznej (neosemantyzacja) lub wręcz wypełniać je
pustką semantyczną (void!)
https://static.xx.fbcdn.net/images/emoji.php/v9/ta5/1.5/16/1f642.png

+++++++++++

 

 


--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Thu Apr 25 08:32:28 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0x98bbc6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0x98c395c>, global ctxt = {'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'})
   18         write(html('msg-pager') % ctxt)
   19         write('<hr>')
   20         sub_showmsg(ctxt, ctxt[MSGNUM])
   21         write('<hr>')
   22         write(html('msg-pager') % ctxt)
global sub_showmsg = <function sub_showmsg at 0x98bb1ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, msgnum=2016)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0x98bb1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, msg = <email.message.Message instance at 0x991aaac>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x991aaac>, partnum=4)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 4, global rec_showpart = <function rec_showpart at 0x98bb1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, p = <email.message.Message instance at 0x9913cac>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x9913cac>, partnum=5)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0x98bb144>, ctxt = {'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part = <email.message.Message instance at 0x9913cac>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 0, 'HTTP_X_FORWA...harset': 'utf-8', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x9913cac>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0x98b3e9c>, global html = <function html at 0x98b3ed4>, type = 'image/png', type.replace = <built-in method replace of str object at 0x9919f70>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-image-png')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0x98b3e9c>, name = 'msg-image-png'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-image-png.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x984ca4c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x9913fac>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0x9913fac>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'