maanantai 15. marraskuuta 1999

Äly yli synkän virran

 
sfnet.keskustelu.filosofia: Tuska - nautinto

11.11.1999 10:00

Esa Toivonen kirjoitti:
"Mieli" olisi tämän teorian mukaan siis itseasiassa kehoon automatisoitunut fyysisen terveyden vastainen väärinymmärrysten prosessi.

Oma arvaukseni:

Aluksi eliöillä oli refleksejä ja jokin uiva mölliäinen liikkui limassa satunnaisesti. Evoluutiossa kehittyi parempia ja monimutkaisempia reaktioita - varustelukilpailu eliöille. Muistan jostain TV:n luonto-ohjelmasta, että jokin perhoslaji osaa yhden neuronin avulla toteuttaa toiminnon: Kun lepakko (perhosen vihollinen) pitää ääntään, reagoi tuo neuroni ikäänkuin "kuulona" ja perhonen herpaantuu täysin mekaanisesti hetkeksi ja tippuu alaspäin näin välttäen todennäköisemmin saaliiksi joutumisen.

Kun eliöt kasvoivat, syntyi petoja ja saaliita, kasvoivat myös näiden reagointikoneistot. Kyseessä oli luonnonvalinnan ohjelmointi. (Jonkun teorian mukaan saaliseläimille syntyi kaaosgeneraattori: juokse oikealle - juokse vasemmalle ja pedoilla taas anti-kaaos: seuraa saalista, tästä kenties yleisemmin älykkyys.) Siinä sivulla eliön koon kasvettua ja muuttuessa kaksi-sukupuoliseksi, tulivat mukaan konteksti-sidonnaiset reaktiot, kypsymiset ja kaikenlaiset vaistotoiminnot, joita voi ehkä pitää jonkinlaisina kompleksisina reflekseinä. Esimerkiksi ihmisen seksuaalisuuteen liittyvät vaistot ovat voimakkaimmillaan vasta murrosiän aikana/jälkeen, lapsi osaa imeä tissiä ja tarrautua, lintujen hautomisvaisto jne: Myös isoilla eliöillä on siis jonkinlainen "perusalgoritmi" elämän eri vaiheita varten. Tämä perusalgoritmi on monimutkainen ja epämääräinen ja sisältää sen tyyppisiä tiloja kuin nälkä → itke, tissi → ime, maha täynnä → nuku jne.. Kehittyneempiä vaistoja ovatkin varmaan häpeä, uteliaisuus, pelko (ehkä jonkinlainen "kausaalisuuden taju" kipuun nähden) jne. Samalla tavalla kuin esim. verenkierto mahdollistaa eliön koon kasvun (evoluution teknologiaa), kehittyvät nämä vaistotoiminnot ohjaamaan ruumista ympäristöön sopeutuen eri tilanteissa.

Seuraavassa vaiheessa tulivat laumaeläimet ja sosiaalinen eläin, kulttuuri. Esim. ihmisellä aivojen mielivaltaiseen ja abstraktimpaan ajatteluun tuli lisää voimavaroja, kun kielellisesti ja sosiaalisia sopimuksia kykenevät yksilöt pärjäsivät: lauman täytyi koordinoitua. Kun kulttuuri eteni ja osoitti inkrementaalisen voimansa, heikkenivät vanhat vaistotoiminnot ihmisellä, mutta ovat edelleenkin toimintojemme pohjalla. Evoluution ohjelmointi korvautui osittain kasvatuksen ohjelmoinnilla, jonka lopputuloksia sitten olemmekin.

Se, että tuskalliset asiat koetaan negatiivisina ja mielihyvätuntemukset positiivisina, on mielestäni lopulta vain kulttuurinen valinta, että käsitteet negatiivinen ja positiivinen viittaavaat niihin perustiloihin, joita ihmisen neuroneilla voi olla. Sanojen negatiivinen ja positiivinen vaihtaminen keskenään ei toki muuta niiden tulkintaa silloin.

Se, miksi haava ei aiheuta nautintoa, on edellisen mukaan saman tyyppinen asia kuin, että miksi polvirefleksi toimii niin päin kuin se toimii: siitä on ollut hyötyä eliölle. Siinä itse asiassa taidan olla samoilla linjoilla kanssasi, että tuska ja nautinto eivät välttämättä ihmisen vaistotoiminnossa ole toistensa negaatioita tai puutetta. Ainakin ne koetaan hyvin epäsymmetrisesti: nautinto on ainakin itselläni hetkellisiä kokemuksia, mutta tuska voi kestää pitkiäkin aikoja. Nautinto on sellainen kokemus, joka tuudittaa, nukuttaa (liittyy ehkä ruuansulatukseen), mutta tuska on se, joka pistää ihmisen liikkeelle: halu toimia (liittyy myös ruuansulatukseen).

En ole oikeastaan ihan varma, mitä halusit kysyä, mutta tässä nyt oli jonkinlainen osanottoni keskusteluun. Vastaukseni taitaa olla sitä "niin vain on"-muotoa, mutta mielestäni mitään ihmeellisempää ratkaisua esittämillesi kysymyksille ei välttämättä tarvitse olla.


15.11.1999 10:00

Paavo Väisänen kirjoitti:
Miksi sitten eräät viiltelevät haavoja vartaloonsa, ellei nautinnosta ?

Suurempi nautinto (tai tahto) voittaa pienemmän kivun ja huomiomme keskittyy tuohon nautintoon. Itse asiassa monesti on aika vaikea kokea useita eri tapahtumiin liittyviä tuntemuksia selkeästi yhtäaikaa. Tuo haavojen viiltely vartaloon saattaa tyydyttää esim. jollain etäisellä tavalla heidän tarvettaan kuulua sosiaaliseen yhteisöön, joten kyseessä on todennäköisesti opittu asia: On toki selvää, että ihmisillä on kulttuurin luomia preferenssejä eli ihminen voi oppia uusia toivottuja asiantiloja, tahtoa. Kuinka sitten preferenssi-käsite eroaa ihmisen ajattelun rakenteessa ei-preferenssissä, voi johtua esim. siitä, että preferensseistä on linkki mielihyväkeskukseen tai ehkäpä on mahdollista, että tahto on itsenäinen koneisto.

Itsensä viiltelyyn ei tarvita nautintoa viiltelystä: Käsittääkseni esim. jotkin fundamentalistit ruoskivat itseään pitkän tähtäimen suunnitelmalla.

Myöskään en halunnut väittää, että evoluutio tekee mahdottomaksi säilymisen kannalta "hyödyttömien" ominaisuuksien olemassaolon: Onhan kokeileminen evoluution tapa rakentaa uusia ominaisuuksia. Kyse on tilastollisuudesta.

Tuskan muuttuminen iloksi tarkoittanee, vain mielen tuskaa, ei elimellistä . Hypnoosilla voidaan tietysti poistaa myös ruumiillinen kipu ?.    Ja siirtää esim,. meedion käsissä olevaan vesilasin veteen !! Siis kivun aistimus

En ole ikinä ollut hypnoosissa enkä ole muutenkaan aiheeseen perehtynyt, joten en osaa sanoa, mutta jos noin todella on, ihminen on kulttuurisempi eläin kuin olen olettanut. Edellistä voisi yrittää selittää esim. siten, että hypnoosi voi ohjata ihmisen keskittymisen johonkin tiettyyn asiaan, jolloin tietoisuus "unohtaa" kivuntunteen.


(Andy Mccoy - Mind over matter)
 

maanantai 18. lokakuuta 1999

Show some class

comp.object: Modularity by data abstraction

29.9.1999 9:00

So now you admit that the design objects can go on their merry "unreal" way, so long as they are traceable to the "real world". Excellent. We have made progress at last.

I think that the "real world" is always our own arbitrary mental map ("design") of the surrounding world and data abstractions in OO reflect the way human brain organizes information. Objects are only some discrete entities or concepts with some interpretation attached to them. Because most of our concepts are some way connected to the physical world and they exist in time, we need state information in most of our objects. Also we can think that interactive software connects some computer objects with real world "objects" (users, peripherals). We want to organize the digital world the same way we do the real world.

I won't disagree with you here. I will emphasize the "start with". Your real-world key domain entities help us get *started*. Finishing is another matter. That has been my point all along.

I think that there isn't any human conceivable algorithm for converting a software specification to a modular design ( I would concider that algorithm to be intelligent). Of course it is possible to develop rules and heuristics but in the end its a question of "understanding" (having efficient model of the problem domain, that is design) the problem domain. This applies to all programming paradigms but because of OO we can map our previous understanding more directly to programming concepts. This is why OO gurus start with real world entities: they are familiar and we already have some "mental designs" for them. 


comp.object: Is a Design good?
 
13.10.1999 9:00

Robert C. Martin wrote:
2. The analysis and design are not the "hard" problems.  The hard problems are *proving* that the analysis and design work, by coding it; and refitting the analysis and design when the inevitable problems happen.  The "hard" problem is to *preserve* the design as the code and environment put pressure upon it.

I think that coding isn't efficient way of proving that the analysis and design work because of the low abstraction level. Of course this doesn't mean that algorithms are allowed to be slow. Often an experienced programmer can instantly "see" that an implementation behind an interface doesn't affect design and it is possible to implement efficiently.

At least we should aim for software development where we need few very good designers and lots of coding power so that we can transfer the knowledge of the few to the whole system even if it is a large project. 


18.10.1999 9:00

Michael C. Feathers wrote:
The interesting thing that I see about modeling is that it is not much different from coding except that you leave out the meat.  In other words, if you say that a method will do something it is taken on faith.  Once you add a complete specification of the method's behavior, you might as well have written the code. Models often aren't at a truly different level of abstraction than code.  If they were, the models would deal primarily with abstractions larger than classes.  The way modeling is done today, classes in models often correspond directly to classes in code. You identify your methods and fill in their bodies later, as if you were coloring in a coloring book.

Classes in models correspond directly to classes in code because classes in code are the general programming mechanism in most OO-languages. That doesn't mean that classes could not use other classes abstractly. If you think an OO-program having only one abstraction level - the code - I think you are missing the point of OO.

The sad fact is, that the internals of methods are paramount in design.  Without them, you have no way of demonstrating correctness or evaluating performance.  You start specifying things in models without any correctness feedback. It is too easy to believe it works rather than know that it does.

It is always a matter of belief but the point is to what extent.

IMHO you are simplifying too much. I think that the main reason we encapsulate methods and data in OO is that we want to create new concepts, that is to construct more abstract entities compared to the basic programming structures (in a way C++ is already a more "abstract" Turing machine). Of course we can apply this recursively. By abstract I mean here that we can understand the object more easily from some other context with some default interpretations attached to it (its methods). It is also "easier" to have faith on C++'s while-loops than some assembler code.

It is very important to hide the implementation in modelling. For example, if we are developing a banking system and want to model an user, the power of abstaction comes from the fact that we don't need to think the colour of the user's eyes. If we have 3 organizational hierarchies in our design (A,B and C), usually A uses B's interpretations and B C's but A doesn't need to understand anything about C. So, if we demand that the whole program should be coded just to prove that A's relationship with B works, then we need to code also C. At the top of this abstraction hierarchy is the end-user and her context.

My view of the OO is just that we build a ladder of abstraction levels or contexts until it matches with end-user's reality. But when we expect the end-user to provide us with the specification of the program (the whole program is after all one huge object in itself) we don't demand that she could program it by herself. In many large projects it is important to create many layers of abstaction to reveal the hidden structures of the real world if we want to extend or modify our system later. Very often our end-user isn't aware of these "hidden" mid-level abstraction levels. That is because the layers are more general than her own context (for example in banking system the user of ATM system doesn't need to know about money transfers between banks, even if banks and users have some common properties) or the abstractions are so low-level that they interest only programmers (for example the need to code a modular implementation of a data structure that the programming environment doesn't support very efficiently). When we build these new mid-level contexts, we are analysing and designing. It is important to understand, that it is NOT necessary to code the lower contexts entirely that we can say it doesn't make the system slower by an order of magnitude.

I once told someone that if there is a person on the team that you don't trust enough to design, then one of you has to go. Everyone who can understand the design can participate in the design, otherwise they are being wasted.  The design has to be simple enough for everyone to understand, and everyone has to be smart enough to evolve the design.

Again, there isn't just one level of design. I can trust some hacker to design a fast data structure or algorith for me, but I wouldn't let her to design the user interface or the overall structure of the system. It may even be waste of resources to teach OO-method to everyone in the project.


("Weird Al" Yankovic - It's All About The Pentiums)

sunnuntai 22. elokuuta 1999

Geeneillä on konteksti, meemeillä on markkinat

Tietokone on ohjelmien luonnollinen, muokkautuva ja suhteellinen ympäristö, kulttuurin koneellinen älykoti.



sfnet.tiede.tekoaly: Tekoälyn ihmisoikeudet?

19.8.1999 9:00

Henri Hansen kirjoitti:
Jos orjat kapinoivat, ei lopputulos luultavasti ole herrarodulle suosiollinen: herrarodun vastavuoroinen orjuuttaminen on välttämätöntä, jotta aikaisempi epäoikeudenmukaisuus ei toistuisi. Jos tekoälyille taas annetaan tasa-arvoinen ja inhimillinen kohtelu, ei ihmiskunta muodosta niille uhkaa, ja voimme elää sovussa.
Olen tässä täysin samaa mieltä. Jokaisen entiteetin joka noudattaa yhteisön sääntöjä ja joka on tuotu/valmistettu yhteisöön, tulisi olla myös yhteisön täysivaltainen jäsen niiltä osin kuin se kykenee oikeuksiaan peräämään tai ymmärtämään.

Nämä robotit pitäisi kuitenkin rakentaa siten, että niihin ohjelmoidaan toimintaohjeita, motivaatioita tai ainakin opetetaan, kuinka niiden tulisi toimia. Ne eivät kilpaile esim. valtaresursseista ilman ärsykkeitä tai ohjelmaa. On tietenkin eri asia, oppivatko ne ihmisten motivaatiot yhteiskunnallisen kanssakäymisen välttämättömänä seurauksena (toisaalta käsittääkseni ainakin ihminen on huomattavasti mukautuvampi lapsena kuin aikuisena ja robotit voitaisiin opettaa eristyksessä). Jos ihmisillä ei ole mitään erityistä syytä tehdä näistä roboteista ihmisenkaltaisia, (esim. lemmikkikäyttöön) voisi ne yhtä hyvin laittaa palvelemaan ihmistä.

Jos ajatellaan esimerkiksi, että näitä robotteja kehitetään eri tehtäviin (sota, erilaisten kokemusten tuottaminen ihmisille, fyysiset työt, tiedon käsitteleminen), on varmaankin kustannustehokasta olla opettamatta niille muita elämänaloja, vaikka ne olisivatkin muuten yleisälykkäitä (ja siis pystyisivät potentiaalisesti täyttämään kansalaisen velvollisuudet) ja vaikuttaisivat tietoisilta. Näitä robotteja voi olla tietenkin vaikka kymmenen kertaa enemmän kuin ihmisiä (suurin osa on ohjelmistoja tietoverkoissa ja prosessoivat digitaalista informaatiota). Niiden avulla voitaisiin tehdä teknisesti kaikki ihmisten työt ja ihmiset eivät pystyisi loppujen lopuksi niiden kanssa kilpailemaan missään asiassa ilman ihmisen parantelemista tekniikalla.

Mielestäni myös kunnioitus ihmistä kohtaan tulee opettaa näille roboteille jotenkin pakolla tai ainakin rajoittaa niiden toimintaa riskien minimoimiseksi. Tämä jo sinänsä poistaa merkittävästi niiden kansalaisoikeuksia sillä ne eivät voisi enemmistönä orjuuttaa ihmistä. Orjuuttaminen olisi siis tällöin myös teknisesti mahdollista pakottaa ja mielestäni mielekkäin vaihtoehto ihmisen kannalta. Toki tämä on mielipideasia.

Edellinen saattaa kuulostaa aika kovalta ja olenkin valmis myöntämään koneelle kansalaisoikeudet eräänlaisena adoptiona eli jos kansalaisella on tarpeeksi vahva side johonkin robottiin, tulisi mielestäni jokaisella kansalaisella olla oikeus ainakin tiettyyn määrään "kansalaisvärväyksiä".

Ehkä myös edellistä sivuava moraalinen kysymys on seuraavanlainen tulevaisuusskenaario: Ajan kuluessa on kenties mahdollista skannata ihmisen aivot sellaisella tarkkuudella, että esimerkiksi jokainen hermosolujen välinen yhteys voidaan tallettaa tietokoneen muistiin ja simuloida likimääräisesti ihmistä virtuaalisesti ilman vanhenevaa kehoa ja reaalimaailman tauteja. Digitaali-ihminen on myös huomattavasti vähemmän reaalimaailman ympäristöstä riippuvainen. Tälle "digitaaliselle ihmiselle" rakennetaan ohjelmakomponenttien avulla virtuaaliset aistit ja virtuaalinen ympäristö. Jos tämä digitaalinen kopio käyttäytyy aivan kuin alkuperäinen ihminen, tulisiko sille antaa kansalaisoikeudet?

Tämän tyyppiset digitaali-ihmiset voivat helposti ehostaa itseään ja omaa ajatteluaan, koska ovat ohjelmistoja ja voivat vapaasti ronkkia omaa toteutustaan ja säilyttää varmuuskopiota itsestään epäonnistuneiden kokeilujen varalta. Tästä syystä ne tulisivat varmaankin helposti syrjäyttämään fyysisen ihmisen. Itse ajattelen, että nämä digitaali-ihmiset ovat todennäköinen evoluutiollinen jatke lajillemme ja samalla kertaluokkainen hyppäys ihmisen kehityksen nopeudessa.


22.8.1999 9:00

Itse ajattelen, että nämä digitaali-ihmiset ovat todennäköinen evoluutiollinen jatke lajillemme ja samalla kertaluokkainen hyppäys ihmisen kehityksen nopeudessa.
Minun mielestäni niitä ei voisi pitää evoluutiollisena jatkeena. Se mikä 'pyrkii' säilymään on kunkin lajin DNA.

Saattaa olla, että käytän termiä evoluutio tai evoluutiollinen jatke väärin, mutta mielestäni evoluutio on yleisempi käsite kuin DNA:n evoluutio. Siis itse sanoisin, että myös DNA on (koko luonnon) evoluution tulosta ja jonkin sitä edeltäneen mömmön evoluutiollinen jatke.

Ajattelen, että evoluutio on ilmiö, joka voidaan havaita "ajassa etenevissä" järjestelmissä siten, että tietyt järjestelmän palaset vain säilyvät (järjestelmän lakien monimutkaisena seurauksena) ja alkavat muodostamaan säilyviä rakenteita (esimerkiksi itsensä kopioiva rakenne). Nämä struktuurit voivat toki muodostaa taas hierarkisia struktuureja, sillä myöskin järjestelmässä, jossa on näitä struktuureja, tapahtuu evoluutiota. Evoluutio näkyy järjestyksen ilmestymisenä jossain muodossa näennäisestä kaaoksesta.

Ensinnäkin, sellaisilla struktuureilla, jotka jotenkin optimoivat omaa säilymistään, eivätkä vain säily, on paljon paremmat mahdollisuudet. Solu ja DNA ovat ensimmäinen todella merkityksellinen luonnon optimoinnin tulos: Ne ovat rajapinta evoluutioon ja ikäänkuin abstrahoivat evoluutioprosessista oleellisen. DNA tallettaa melko yleisen struktuurin diskreetiksi informaatioksi ja poistaa VALTAVAN määrän kohinaa ko. struktuurin evoluutiolta. Seuraava evoluution kertaluokkahyppäys oli ehkäpä eksplisiittinen kilpailu ja sen aikaansaama äly, joka kykenee suunnittelemaan omaa säilymistään ja mukautumaan ympäristöönsä.

Totta kai edellinen selvitys yksinkertaistaa aivan liikaa elämän historiaa, mutta se ei ole tämän tekstin pääaihe. Tarkoituksenani on vain valottaa, että evoluution tuloksena on syntynyt selkeästi eri hierarkiatason struktuureja hitaina hyppäyksinä. Tätä tarkoitin alkuperäisessä viestissäni sillä, että digitaalinen ihminen on kenties vastaava kertaluokkainen hyppäys ihmisen kehityksessä. Ihmisen digitalisoiminen kokonaisuudessaan tekee vähän saman asian kuin geeni: Se "abstrahoi" ihmisen sellaiseen muotoon, että geeni käy liian hitaaksi kehityksen muodoksi, kun äly voi ottaa geeni-evoluution paikan ja muokata suoraan itseään.

Totta kai ihminen nykyisessä fyysisessä muodossaankin on älyn käsiteltävänä, mutta fyysisen rakenteen muuttaminen biteiksi tarjoaa muuntelulle sellaisen rajapinnan, joka on ihmisen ajattelun tasolla. Tällä tarkoitan sitä, että periaatteessa jos ihminen pystyy tarkasti määrittelemään jonkun hänelle teoreettisesti toteuttamiskelpoisen tehtävän operaation reaalimaailmassa, on tämä määritelmä vastaavan työn tulos kuin kyseisen asian toteuttaminen bittimaailmassa. Reaalimaailmassa melkein kaikki operaatiot sisältävät niin paljon asiaan kuulumatonta työtä, että ne ovat käytännössä mahdottomia. Ihan vain esimerkkinä: reaalimaailmassa on aika hankala toteuttaa undo-toimintoa. Myöskin bittimaailma on tietyllä tapaa universaalimpi: siihen voidaan tehdä loputtomasti uusia hierarkisia struktuureja, abstraktioita ja rajapintoja, jotka muuttavat bittiavaruuden aina haluttuun näkökulmaan.

Vaikka yhden ihmisen digitalisoiminen tulisikin joskus teknisesti mahdolliseksi ja tämä kopio vieläpä käyttäytyisi älykkäästi alkuperäisen tavoin, niin varsinaisen digitaalisen lajin kehitykseen on matkaa siitä vielä todella paljon. Tässä nimittäin vastaan tulee se, että se evoluutiollinen konstruktio, joka ihmistä säilyttää ei nykyisellään ole yksilö, vaan ihmiset yhteisönä, laumana ja koko lajiin liittyvät asiat kuten lisääntyminen, oppiminen, sosiaaliset tarpeet jne.. Itse asiassa voi olla jopa väärin ennustaa digitaalisen ihmisen esiinmarssia kun pitäisi puhua digitaalisesta ihmiskunnasta. Jos digitaalisia ihmisiä on kokonainen yhteisö, on mm. seuraava mahdollinen askel ronkkia niiden aivoja niin, että jonkinlainen "telepatia" mahdollistetaan digi-ihmisten välille suorilla aivolinkeillä. Voihan jopa käydä niin, että yksittäiset identiteetit sulautuvat osittain yhteen sienimäiseen massaan, tietoverkkoon, joka rakentaa itseään roboteilla reaalimaailmassa lisäämällä uusia laskentayksikköjä ja muistia sekä elämällä omaa mystistä, abstraktia todellisuuttaan sisällään ;)


(Peter Gabriel Steam HD-HQ)