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/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'