YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Spanish subtitles

← MaxEnt 9 Modeling the Open Source Ecosystem, Part 3

Get Embed Code
2 Languages

Showing Revision 14 created 08/21/2017 by Matias Agelvis.

  1. Lo que le mostré en la unidad anterior
  2. fue una manera de rescatar los modelos de
    máxima entropía
  3. para describir la
    abundancia de lenguajes P(n)
  4. en función de una variable escondida,
  5. epsilon, que llamamos
    "tiempo del programador"
  6. y asumimos que el sistema estaba
  7. restringido de dos formas:
  8. Estaba restringido no solo a tener
  9. un cierto numero promedio de proyectos
  10. por lenguaje, también fijamos
    la popularidad promedio
  11. de los lenguajes, pero también fijamos
  12. el promedio del tiempo del programador
    dedicado a los proyectos
  13. en un lenguaje en particular.
  14. Entonces esta distribución,
    aquí, se ve así,
  15. en su forma funcional, y cuando integramos
  16. en esta variable, epsilon, obtenemos
    algo que se ve como esto.
  17. Así que obtenemos una predicción diferente
  18. para le distribución de los lenguajes.
  19. Obtenemos una predicción que, digo yo,
    se ve razonablemente bien.
  20. Ciertamente se ve mejor que la
    distribución exponencial.
  21. Me siento obligado comentarle
    acerca de la controversia
  22. que hay cuando tratamos de hacer
    estos modelos… En particular
  23. hay un modelo muy diferente que
    se ve bastante similar.
  24. Es la serie de logaritmos de Fisher.
  25. Y el argumento detrás
    de la serie de Fisher,
  26. para explicar esta distribución,
  27. implica la idea de
    una restricción adicional "oculta".
  28. En la pregunta del código abierto,
    lo que e hecho es incluir esa
  29. restricción adicional como
    "tiempo de programación", solo porque
  30. parecía que seria una restricción en el
    sistema, ok? Que fijáramos el promedio del
  31. tiempo de programación por lenguaje, no
    solo el numero promedio de proyectos.
  32. Pero, y eso significa que los lenguajes
    pueden variar su popularidad, y también
  33. su eficiencia, en el modelado ecológico,
    esto son especies
  34. los lenguajes son especies, y esto es la
    abundancia de especies,
  35. lo que se interpreta como la variedad de
    una especie en la naturaleza,
  36. y también su metabolismo, cuanta energía
    consume una especie en particular.
  37. Entonces en este caso, el sistema esta
    restringido al numero promedio
  38. de abundancia de especies, y al promedio
    de energía consumida por especie.
  39. Aquí los lenguajes están restringidos a
    una cierta abundancia, y a un cierto
  40. consumo de energía de programador,
    esa es la analogía.
  41. Así que también podemos construir un
    modelo de popularidad
  42. de lenguajes de programación.
  43. Y previamente cuando estudiamos el
    problema de los taxis, lo que hicimos fue
  44. cuando construimos el modelo, encontramos
    uno muy simple era capaz de reproducir
  45. las predicciones del modelo de
    máxima entropía.
  46. Aquí, por el contrario, lo que vamos a ver
    es que el modelo va a producir
  47. un comportamiento similar, pero la forma
    funcional sera ligeramente distinta.
  48. Así que este es el modelo…
    imaginamos que
  49. todos los lenguajes empiezan con una
    popularidad mínima,
  50. el que inventa un lenguaje, por ejemplo,
  51. tiene que escribir al menos un proyecto,
    hay al menos un programador
  52. cuando un lenguaje es inventado,
    que sabe como programar en ese lenguaje,
  53. por definición.
  54. Entonces la popularidad puede crecer
    de dos formas.
  55. Puede crecer, por ejemplo, linealmente,
  56. así que en el día uno hay un programador,
  57. en el día dos, se le uno otro programador
    a ese programador.
  58. y en el día tres, se une
    un tercer programador,
  59. y así, en el tiempo lo que obtiene
  60. es una taza de crecimiento lineal…
  61. Pero, quizás un modelo mas plausible
  62. sobre como crece la popularidad
  63. es que sea multiplicativamente…
  64. en t 1, hay un programador, y tiene
  65. una cierta eficiencia de convencer a otros
  66. programadores para que se unan a la causa,
  67. así que tal ves es capaz de duplicar
    el numero de programadores.
  68. Si es capaz de duplicar
    el numero de programadores, porque
  69. su lenguaje es particularmente bueno,
    y tal vez la que usa ese lenguaje,
  70. por coincidencia, es
    particularmente persuasiva.
  71. Así que en el segundo día, esos dos
    programadores, cada uno,
  72. buscan y convierten a dos personas,
  73. porque son tan efectivos como
    el programador original
  74. y el lenguaje en si mismo es
    tan convincente como lo era antes.
  75. Entonces cada uno de
    los programadores salen
  76. y consiguen dos cada uno,
    y así tenemos cuatro,
  77. y por un argumento similar,
    llegamos a 8,
  78. y así este seria un modelo de
    crecimiento exponencial…
  79. donde el numero de programadores
    en función del tiempo incrementa
  80. multiplicativamente,
    en vez de aditivamente.
  81. Así que, vamos a hacer este modelo un poco
    mas realista, en particular
  82. permitamos al factor multiplicativo,
  83. que en este caso lo ponemos en 2,
  84. vamos a permitir que este factor varíe,
    de hecho, vamos a sacar
  85. este factor multiplicativo, alfa,
    de una distribución,
  86. de hecho, realmente no importa de que
    distribución sea
  87. mientras que el alfa sea mayor que cero,
  88. para que no sea posible que todos
    los programadores desaparezcan de repente.
  89. así que es simple mayor que cero,
  90. y esta limitada en algún punto,
  91. para que sea imposible que un lenguaje
  92. se vuelva infinitamente popular después de
  93. un numero finito de repeticiones.
    Así que vamos a tomar…
  94. Cada día vamos a tomar un numero,
    alfa, de esta distribución, esta de aquí.
  95. Así, después de un día,
    hay alfa programadores,
  96. después de dos días, hay alfa… Mas bien,
    alfa(1) programadores,
  97. este es el numero del primer día, en el
    segundo día hay alfa(2) veces alfa (1)
  98. programadores, y así, alpha(3) veces
    alpha(2) veces alpha(1).
  99. Así que ahora crecimiento ocurre a travez
  100. de un proceso multiplicativo aleatorio.
  101. Es similar al crecimiento que ocurriría
  102. a travez de un proceso aditivo aleatorio,
  103. excepto que ahora en vez de sumar
  104. un numero aleatorio de
    programadores cada día,
  105. multiplica el numero total de
    programadores cada día,
  106. por algún factor alfa
  107. sacado de esta distribución.
  108. Así, usted siempre pude
    convertir este proceso
  109. multiplicativo en uno aditivo
    de una forma muy simple,
  110. el truco es usar el logaritmo.
  111. Con el tiempo, si contamos el numero
    de programadores
  112. que estamos multiplicando, pero estamos
    trabajando en el espacio de logaritmos,
  113. solo estamos sumando, estamos sumando
    un numero aleatorio
  114. a la distribución, siempre que alfa
  115. sea estrictamente mayor que cero, esto
    estará bien definido.
  116. Ahora, de repente, en el espacio log.
    Se parece al modelo aditivo.
  117. Y algo que sabemos del teorema
    del limite central es que si suma
  118. muchos números aleatorios,
    esa distribución tiende
  119. a una distribución Gaussiana,
  120. con alguna media, mu, y
    una variancia, sigma, particulares.
  121. No nos preocupemos acerca del valor
    particular de estas,
  122. sino mas bien, note que el crecimiento
    ocurre en el espacio de logaritmo.
  123. La distribución de estas sumas para
  124. un largo tiempo terminara viéndose como
    una distribución Gaussiana.
  125. El crecimiento diario
    promedio de un lenguaje
  126. se ve en el espacio log. Como una
    distribución Gaussiana, lo que significa
  127. es que el modelo de
    crecimiento exponencial
  128. con empujones aleatorios,
    empujones multiplicativos aleatorios,
  129. realmente se ve como una Gaussiana en el
    espacio log. O lo que llamamos log-normal
  130. en el espacio de números.
  131. Entonces, en cambio de ver el logaritmo
    de la popularidad de un lenguaje,
  132. solo mire la popularidad total
    de un lenguaje,
  133. y lo que eso significa es
  134. que se ve como una exponencial del
  135. log(n) menos alguna media al cuadrado
    sobre dos sigma cuadrado…
  136. Y después usted solo tiene que ser
    cuidadoso al normalizar cosas aquí.
  137. Entonces esta el la
    distribución log-normal,
  138. (Falta signo menos)
  139. y un modelo simple donde el crecimiento
    de un lenguaje ocurre multiplicativamente
  140. donde un lenguaje gana nuevos adeptos
  141. en proporción al numero de adeptos
    que ya tiene,
  142. donde un lenguaje gana nuevos proyectos
  143. en proporción al numero
    de proyectos que ya tiene, que ya
  144. depende del ambiente, es de ahí que viene
    la aleatoriedad de la multiplicación,
  145. alfa es un numero aleatorio,
    no una restricción,
  146. no es 2, el lenguaje no necesariamente
    tiene que duplicarse siempre,
  147. pero el hecho de que pase por
  148. un proceso multiplicativo aleatorio
  149. en cambio de un proceso aditivo,
  150. significa que tiene tendrá
    un crecimiento log-normal,
  151. y entonces puede decir,
    "Ok, entonces imaginemos
  152. que el lenguaje crece a travez de este
    proceso log-normal,
  153. y encontremos los parámetros
    que mejor se ajusten para
  154. mu y sigma". Y si hace eso, encontrara
  155. que el mecanismo del modelo log-normal
  156. también se ve muy bien.
  157. Estábamos impresionados por lo
    bien que la linea azul se ajustaba
  158. a esta distribución al compararla con el
    modelo exponencial rojo,
  159. el modelo de máxima entropía,
    restringiendo solo N,
  160. ese era el modelo rojo.
    Aquí al modelo azul le va bien…
  161. Este es el modelo de
    la serie de Fisher-log
  162. Desafortunadamente, es un modelo simple…
  163. Le he dado un resumen del modelo, aquí,
  164. lo que pasa con este modelo es que
  165. usted esta sumando muchos pequeños
    empujones multiplicativos,
  166. el modelo simple funciona también.
  167. Le diré que este se ajusta mejor,
  168. si hace un análisis estadístico, ambos
    modelos tienen dos parámetros,
  169. si hace un análisis estadístico, la serie
    Fisher-log en realidad se ajusta mejor
  170. en particular, es capas de
    explicar estos lenguajes
  171. de popularidad realmente alta,
  172. estas desviaciones de aquí parecen mayores
  173. que las desviaciones de aquí,
    pero tiene que recordar
  174. que esto esta en una escala logarítmica,
  175. así que esto se acerca mucho
    mas aquí arriba
  176. que lo que este aquí.
  177. Así que el modelo simple, al menos
    visualmente parece que es
  178. extremadamente competitivo con el
    modelo de la serie de Fisher-log
  179. derivada de un argumento
    de máxima entropía.
  180. Estadísticamente hablando,
    si ve estas dos,
  181. esta, de hecho esta es
    ligeramente menos preferible
  182. Pero, como mucha gente, lo que quiere es
  183. evidencia que refuerce esta contra esta,
  184. y yo creo que la mejor forma de buscar
  185. ese tipo de evidencia es averiguar
  186. que, si existe, es este
    epsilon en el mundo real,
  187. si fuéramos capases de
    construir una teoría solida
  188. acerca de que es epsilon,
  189. y como podríamos medirlo en los datos
  190. entonces podríamos ver si esto de aquí,
    esta distribución conjunta,
  191. estuviera bien recreada,
    si pudiéramos encontrar evidencia,
  192. por ejemplo, el hecho de
    que estas dos co-varian,
  193. de que aquí tenemos un
    termino que impulsa la popularidad
  194. de un lenguaje si se vuelve mas eficiente.
  195. Entonces, si esto baja, esto puede subir,
  196. y el lenguaje puede aun tener la misma
  197. probabilidad de de ser encontrado
  198. con esas propiedades,
  199. y claro, el problema es que no sabemos
  200. como medir este,
    tipo de misterioso, tiempo de programador…
  201. eficiencia de programador.
  202. A los ecologistas les va mejor con esto,
  203. porque los ecologistas
    saben cuanto es su epsilon,
  204. ellos saben que su epsilon es la
    unidad de consumo de energía metabólica,
  205. Así que es "cuanta energía consume una
  206. cierta especie en un día,
    o en toda su vida",
  207. y ellos son capases de medir eso, y
  208. de hecho, son capases de medir
  209. esta distribución conjunta.
  210. Cuando estudiamos el ecosistema del
    código libre
  211. hasta ahora, no tenemos una manera
  212. de medir esto, y por
    eso somos incapaces de
  213. medir esta distribución conjunta, entonces
  214. acabamos con un modelo simplificado
    de incremento de la popularidad
  215. y por aquí, este modelo que trata sobre
  216. la existencia de dos
    restricciones en el sistema,
  217. numero promedio y tiempo de
    programador promedio.